Repository created to record my practice learning CSS and SASS with exercises based on the Udemy Course of Jonas Schmedtmann.
- Status
- Requirements
- Setup
- How to run it
- Repo structure & what i learned in each exercise
- Other practice repos
- Current repo's version is
- This course has been completed on 10/04/2024 - Certificate
After finishing its related Udemy course, I archive this repository and unarchive it when I start a new training and add a link in the Other practice repos section referring to its new repo. But I don't update any associated dependency due to technology changes during the years between each practice, and the produced code which works with the mentioned requirements.
- Node
v20.10.0or above - Live Server (VisualStudio Code Extension) to launch a development local server.
Just in case you want to make your version with specific releases and version updates. After cloning the repo, install the node packages to the created folder.
git clone https://github.com/NicolasOmar/styling-practice.git
cd styling-practice
npm run setup:allsetup:all is the command to install all the projects, but if you want to do it one by one, you can change that last line for one of the following:
| App Setup | Command |
|---|---|
| All | npm run setup:all |
| Natorus | npm run setup:natorus |
| Nexter | npm run setup:nexter |
- Open the
index.htmlfile on any of the exercise's indexes. - Click on the
Go Livebutton on the VSCode bottom-right corner.- It should open a new window with your page
- Natorus project (
1-natorusfolder)- Refreshing concepts related to coloring and positioning (using
relativeandabsolute). - Refreshing concepts related to center elements in several situations like
inline,blockandboxedelements using different strategies. - How to create custom animations using
@keyframesandanimation. - Make animate/transform elements with
transform,translate,skew,scaleandrotate. - Refreshing concepts related to pseudo-classes (using
:linkand:visited). - How to use pseudo-elements like
::after. - How to implement a more maintainable style using relative units like
remorem. - Learn about
bem(block element modifier) and implement it in current project status. - Learn
sassbasics (like variables, nesting, operators, mixins, and functions). - Install sass compiler with node-sass to generate css code using
scsssintaxis. - How to build a sass architecture for our project based on 7-1 pattern and move the code following the structure.
- How to create a grid system from scratch (styling like Bootstrap).
- How to use
mixingsfor repetitive pieces of styling code. - How to use the
calcfunction for calculated values (like specific widths). - How to manipulate text styling with
background-clipandcolor: transparent. - How to create frames in an element with
outlineandoutline-offset. - Learn to select specific elements using direct children (with
>). - How to use
perspectiveandbackface-visibilityto include two or more sides of an element that are overlapping. - How to apply a consistent styling in a span (for example) by using
box-decoration-break. - How to wrap elements shape around another shape using
shape-outside. - How to add filters to transform elements using
filterwith properties as blur and brightness. - How to use
<video>properties and different formats with<soruce>. - How to adjust elements with ratio like
<video>usingobject-fit. - How to create a gradient background:
- In linear direction, both simple and advanced ways using
linear-gradient. - In radial direction using
radial-gradient.
- In linear direction, both simple and advanced ways using
- How to handle invalid/valid input state using
:invalidpseudoclass. - How to handle an animated toggle display using
opacity,visibilityandtransform. - How to style custom
<radio>inputs. - How to move a background to be animated using
background-sizeandbackground-position. - How to create a custom transition using
cubic-bezier. - How to create a burger menu that changes when is clicked.
- How to adjust element's postion using
tabledisplay (examples withtableandtable-cell) - How to format a long text into several columns using properties like
column-count,column-gapandcolumn-rule. - Learning concepts related to mobile-first responsive strategy.
- Implement a responsive strategy using
@mediaqueries and extend its functionality using@ifdirective. - How to work with responsive images using properties like
srcsetandsizes.
- Refreshing concepts related to coloring and positioning (using
- Trillo project (
2-trillofolder)- How to add and use
custom css properties. - How to use
flexto adjust layout elements width with flexbox. - How to use flex starter properties like
justify-andalign-. - How to adjust element orientation with
flex-direction. - How to add a
svgelement in html and in css. - How to use HTML entities in both HTML and CSS implementations.
- How to add and use
- Nexter project (
3-nexterfolder)- How to use
gridto adjust layout elements with gird layouts. - How to use adjust grid's structure using
grid-template-rowsandgrid-template-columns. - How to reduce repetitive values with
repeat. - How to adjust element's content space with
fr,vh,vwandmin-content. - How to make grid layout easier by including area names on columns.
- Handle multiple-level grids (one inside another).
- How to set gaps between columns and/or rows using
column-gapandrow-gap. - How to make a layout responsive ready without using media queries.
- How to use flexbox and grid at the same time (for one-dimensional layouts).
- How to supperpose different elements located in the same row or column.
- How to create a gallery effect by setting
object-fitto its images. - How to align several elements in vertical way (besides the already worked horizontal cases).
- How to include support for older browsers using
@support.
- How to use
- Bonus
- Inclusion of libraries for code formatting and linting (prettier and stylelint).
- Inclusion of libraries for code review based on git-hooks (lint-staged and husky).
| Node | Angular | GraphQL | React | Typescript | HTML & CSS | Next.js | Python | Docker |
|---|---|---|---|---|---|---|---|---|