• Stars
    star
    282
  • Rank 141,849 (Top 3 %)
  • Language
    CSS
  • Created over 5 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎨 MedellinCSS Community 🎨 Slides: https://goo.gl/88Fynk

readme-title

¿ Qué haremos ?

Haremos una Landing Page tanto para Web como para Mobile usando SASS y BEM.

¿ Qué debemos hacer para comenzar ?

  1. Debes tener instalado Git en tu computador.
  2. Clonar este repositorio. Nos puedes preguntar si tienes dudas de cómo hacer este paso.
  3. Abrir tu editor de código favorito: Visual Studio Code, Atom, Webstorm...
  4. Abrir este repositorio en tu editor de código.
  5. Escuchar atentamente las indicaciones posteriores. Haremos todo en conjunto, así que debemos esperar a que todos estemos en este paso.

Comencemos con nuestra Landing Page !

  1. Introducción a SASS
  2. Introducción a BEM
  3. Después de clonar el repositorio...
  4. Conozcamos la estructura de nuestra Landing Page
  5. Definición de elementos
  6. Instalación de SASS
  7. Variables: Paleta de colores y fuentes
  8. Header
  9. Main Section
  10. Search Section
  11. Primary Section
  12. Secondary Section
  13. Footer

1. Introducción a SASS (Syntactically Awesome StyleSheets)

SASS es un preprocesador de CSS y nos permite escribir CSS con unas pequeñas modificaciones: podemos hacer variables, extender estilos de otras clases, hacer anidamientos, utilizar condicionales, entre otros.

Aquí te compartimos algunos recursos:

2. Introducción a BEM (Block, Element, Modifier)

BEM es una convención de nomenclatura para los nombres de nuestras clases en CSS.

3. Después de clonar el repositorio...

Después de clonar el repositorio encontrarás dos carpetas: inicial y final. Tú comenzarás a escribir código en el index.html que dejamos para ti en la carpeta inicial. Y porsupuesto, en la carpeta final está el resultado al que debemos llegar.

4. Conozcamos la estructura de nuestra Landing Page

Aquí te presentamos la estructura de nuestra Landing Page. Para este caso, escogimos una página de animales pero tú puedes hacerla del tema que quieras: motos, carros, maquillaje, ropa, fitness... e inclusive, tu propia página web.

  • Landing Page | Diseño Web

Mockup Link: https://goo.gl/Qbngyz

Landing Page Web

  • Landing Page | Diseño Móvil

Mockup Link: https://goo.gl/gGkwDq

Landing Page Mobile

5. Definición de elementos

Para comenzar a maquetar nuestra Landing Page es importante poder reconocer los elementos que allí se encuentran. Es decir, si tiene navbar, header, secciones, imágenes, footer, etc.

Este es un paso fundamental ya que te ayudará a conocer mejor el proyecto que vas a realizar y también puedes empezar a detectar si trabajarás con flexbox, css grid, boostrap, material design, etc. Es decir, empezarás a levantar requisitos. Además te ayudará a estructurar y tener una visión más clara de tu HTML.

Elements Landing Page

Como pudiste ver, tendremos: Header, Main Section, Search Section, Primary Section, Secondary Section y Footer. Estos elementos serán nuestros pequeños bloques de HTML.

6. Instalación de SASS

Lo primero que debes saber es que no puedes insertar directamente un archivo .scss en un archivo .html.

¿Por qué?

Porque SASS al ser un preprocesador de CSS3 y no es soportado en los navegadores web. Por lo tanto, los pasos a seguir son:

1. Instalación de SASS en tu computador.

  • Si usas npm debes poner en tu consola: npm install -g sass
  • Si usas Chocolatey Package Manager (Windows) debes poner en tu consola: choco install sass
  • Si eres MAC OS X debes poner en tu consola: brew install sass/sass/sass

Documentación oficial: https://sass-lang.com/install

2. Correr el proyecto con SASS

Para poder visualizar tus proyectos de sass en el navegador, debes escribir en tu consola: sass --watch tu-ruta/sass-workshop/initial/styles.scss tu-ruta/sass-workshop/initial/styles/index.css

  • Nota 1: "tu-ruta" es el lugar en tu computador en donde clonaste el repositorio. Un ejemplo puede ser: /Users/PepitaPerez/Documentos/... es decir que lo que deberías escribir en tu consola es: sass --watch /Users/PepitaPerez/Documentos/sass-workshop/initial/styles.scss /Users/PepitaPerez/Documentos/sass-workshop/initial/styles/index.css

  • Nota 2: La ruta de tu proyecto la puedes conseguir haciendo pwd en tu consola. Si eres Windows con el comando cd

3. Ver tu proyecto en el navegador

Al correr el comando anterior, notarás en tu código que se crea un archivo styles.css.map. Si sí, ya puedes ir a tu navegador y poner la ruta del index.html de tu proyecto.

Siguiendo la línea del ejemplo anterior, deberías poner: file:///Users/PepitaPerez/Documentos/sass-workshop/initial/index.html

7. Variables: Paleta de colores y fuentes

Las variables en SASS son un camino para almacenar información y poder reutilizarla.

En nuetro caso, la paleta de colores es:

  • Verde: #99DDCC
  • Rosado: #FA91A7
  • Amarillo: #D9E540
  • Blanco: #FFF

y, la fuente que usaremos será Arial.

Nota: Recuerda que puedes escoger los colores y las fuentes que desees.

Lo que haremos para definir estas variables en nuestro archivo styles.scss es escribir lo siguiente:

$green: #99DDCC;
$pink: #FA91A7;
$yellow: #D9E540;
$white: #FFF;
$font-arial: arial;

8. Header

  • Imagen del mockup:

Navbar

Podemos notar que nuestro Header debe ocupar todo el ancho de nuestra página (tanto en web como en mobile), un largo de 80px y que además tiene un texto en mayúscula y centrado. Así que:

  • En el archivo HTML escribiremos lo siguiente:
<nav class="header">Medellín CSS</nav>
  • En el archivo SCSS escribiremos lo siguiente:
.header {
  background-color: $green;
  color: $white;
  width: 100%;
  height: 80px;
  text-transform: uppercase;
  font-family: $font-arial;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

Puedes notar que tenemos: font-family, font-size, font-weight y con SASS podemos escribir eso así:

font: {
    family: $font-arial;
    size: 18px;
    weight: bold;
}

Así que nuestra clase .header quedaría:

.header {
  background-color: $green;
  color: $white;
  width: 100%;
  height: 80px;
  text-transform: uppercase;
  letter-spacing: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  font: {
    family: $font-arial;
    size: 18px;
    weight: bold;
  }
}

Sin embargo, si pensamos a futuro vamos a notar que necesitaremos centrar elementos usando display: flex, por lo que sería útil hacer una clase que centre elementos y así poderla reutilizar más adelante. Por lo tanto, crearemos una clase llamada .center con lo siguiente:

.center {
  display: flex;
  align-items: center;
  justify-content: center;
}

Y, en nuestra clase .header vamos a heredar de .center usando @extend así:

.header {
  @extend .center;
  background-color: $green;
  color: $white;
  width: 100%;
  height: 80px;
  text-transform: uppercase;
  letter-spacing: 5px;
  font: {
    family: $font-arial;
    size: 18px;
    weight: bold;
  }
}

También podemos sacar dos clases más para poderlas reutilizar más adelante:

.size-container {
  width: 100%;
  height: 80px;
}

.letter-transform {
  text-transform: uppercase;
  letter-spacing: 5px;
}

Finalmente, nuestra clase .header quedaría:

.header {
  @extend .center;
  @extend .size-container;
  @extend .letter-transform;
  background-color: $green;
  color: $white;
  font: {
    family: $font-arial;
    size: 18px;
    weight: bold;
  }
}

9. Main Section

  • Imagen del mockup:

Main Section

  • En el archivo HTML escribiremos lo siguiente:
<section class="main">
  <img src="./assets/main-image.png" alt="Main Image">
</section>
  • En el archivo SCSS escribiremos lo siguiente:
.main {
  img {
    width: 100%;
    height: 100%;
  }
}

10. Search Section

  • Imagen del mockup:

Search

  • En el archivo HTML escribiremos lo siguiente:
<section class="search">
  <div class="search__title">Search</div>
  <div class="search__input">
    <i class="fas fa-search"></i>
    <input type="text" placeholder="SEARCH YOUR ANIMAL">
  </div>
</section>

El ícono lo puedes sacar de Font Awesome. Puedes escoger el ícono que más te guste aquí: https://fontawesome.com/icons?d=gallery

  • En el archivo SCSS escribiremos lo siguiente:
.search {
  &__title {
    @extend .center;
    @extend .size-container;
    @extend .letter-transform;
    background-color: $green;
    color: $white;
    font: {
      family: $font-arial;
      size: 18px;
    }
  }
  &__input {
    background-color: $white;
    display: grid;
    grid-template-columns: 60px auto;
    justify-items: center;
    align-items: center;
    input {
      @extend .size-container;
      border: 0px;
      outline: none;
      font-size: 18px;
      letter-spacing: 5px;
    }
  }
}

11. Primary Section

Esta sección debemos pensarla tanto para dispositivos web como para mobile. Vamos a notar que hay un pequeño cambio en los tamaños de las imágenes y descripciones.

Con CSS Grid haremos una cuadrícula imaginaria como la que vemos a continuación:

  • Imagen del mockup:

Crab Section

Lo que va a cambiar será la ubicación de los elementos en las diferentes filas. Así:

En Web:

Column 1 Column 2
Imagen Cangrejo Descripción Mariposa Row 1
Imagen Cangrejo Imagen Mariposa Row 2
Imagen Cangrejo Imagen Mariposa Row 3
Descripción Mariposa Imagen Mariposa Row 4

En Mobile:

Column 1 Column 2
Imagen Cangrejo Descripción Mariposa Row 1
Imagen Cangrejo Descripción Mariposa Row 2
Descripción Mariposa Imagen Mariposa Row 3
Descripción Mariposa Imagen Mariposa Row 4
  • En el archivo HTML escribiremos lo siguiente:
<section class="ps">
  <img class="ps__img--primary" src="./assets/crab.png" alt="Crab">
  <div class="ps__description--primary">
    <p>Cangrejos<br>para todos</p>
  </div>
  <img class="ps__img--secondary" src="./assets/butterfly.png" alt="Butterfly">
  <div class="ps__description--secondary">
    <p>Mariposas</p>
  </div>
</section>
  • En el archivo SCSS escribiremos lo siguiente:
.ps {
  width: 100%;
  height: 900px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 2fr 1fr 1fr 2fr;
  @media screen and (max-width: $break-small) {
    height: 500px;
  }
  img {
    width: 100%;
    height: 100%;
  }
  &__img--primary {
    grid-row: 1/4;
    @media screen and (max-width: $break-small) {
      grid-row: 1/3;
    }
  }
  &__description--primary {
    @extend .description;
    grid-column: 2;
    grid-row: 1/2;
    @media screen and (max-width: $break-small) {
      grid-column: 2;
      grid-row: 1/3;
    }
  }
  &__img--secondary {
    grid-column: 2;
    grid-row: 2/5;
    @media screen and (max-width: $break-small) {
      grid-column: 2;
      grid-row: 3/5;
    }
  }
  &__description--secondary {
    @extend .description;
    grid-row: 4/5;
    @media screen and (max-width: $break-small) {
      grid-row: 3/5;
    }
  }
}

Donde $break-small será otra variable junto a nuestra paleta de colores con el valor: 800px.

12. Secondary Section

  • Imagen del mockup:

Cat Section Web

Cat Section Mobile

  • En el archivo HTML escribiremos lo siguiente:
<section class="ss">
  <img class="ss__img--primary" src="./assets/cat.png" alt="Cat">
  <div class="ss__container">
    <div class="ss__description--primary">
      <p>Gatos<br>Majestuosos</p>
    </div>
    <img class="ss__img--secondary" src="./assets/deer.png" alt="Deer">
    <div class="ss__description--secondary">
      <p>Ciervooos</p>
    </div>
  </div>
</section>
  • En el archivo SCSS escribiremos lo siguiente:
.ss {
  width: 100%;
  height: 900px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  @media screen and (max-width: $break-small) {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, 450px);
  }
  img {
    width: 100%;
  }
  &__img--primary {
    height: 100%;    
  }
  &__container {
    display: grid;
    grid-template-rows: repeat(3, 300px);
    @media screen and (max-width: $break-small) {
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: repeat(2, 225px);
    }
  }
  &__description--primary {
    @extend .description;
    @media screen and (max-width: $break-small) {
      grid-column: 1/3;
    }
  }
  &__img--secondary {
    @extend .description;
    height: 100%;
    @media screen and (max-width: $break-small) {
      height: 50%;
      grid-column: 1/2;
      grid-row: 2;
    }
  }
  &__description--secondary {
    @extend .description;
    @media screen and (max-width: $break-small) {
      grid-column: 2/3;
      grid-row: 2;
    }
  }
}

13. Footer

  • Imagen del mockup:

Footer

  • En el archivo HTML escribiremos lo siguiente:
<footer class="footer">
  <p>
    <span>Created by</span><br>@myuser
  </p>
</footer>
  • En el archivo SCSS escribiremos lo siguiente:
.footer {
  @extend .center;
  @extend .size-container;
  @extend .letter-transform;
  background-color: $white;
  color: $pink;
  font: {
    size: 15px;
    weight: bold;
  }
  p {
    text-align: center;
    span {
      color: $green;
    }
  }
}

More Repositories

1

basic-algorithms

🤓Basic algorithms using JavaScript
JavaScript
45
star
2

Platzi-Frontend-Dev

👩🏻‍🏫 My Course
HTML
39
star
3

tu-michi-de-confianza-react

JavaScript
32
star
4

flexbox-and-css-grid-workshop

⭐️ Taller de Flexbox + CSS Grid ⭐️
HTML
28
star
5

parallax-effect-platzi-live

💚 Efecto Parallax usando transformaciones de CSS
HTML
24
star
6

ChatScrollAnimated

👥 Animation with Scroll using React JS !
JavaScript
19
star
7

tinder-for-cats

✨ Platzi Live Class
HTML
18
star
8

tu-michi-de-confianza-js

HTML
17
star
9

my-js-quizzes-1

🔥 About my JS quizzes on Instagram
15
star
10

piocamp-css-workshop

🧡 Taller para PIOCAMP | CSS 101 🧡
HTML
14
star
11

smart-home-tailwind-css-final-result

http://teffcode.co/smart-home-tailwind-css-final-result/
CSS
14
star
12

toggle-button-animated

https://teffcode.github.io/toggle-button-animated/
HTML
13
star
13

smart-home-tailwind-css

http://teffcode.co/smart-home-tailwind-css/
CSS
11
star
14

youtube-navigation-menu

✨ Platzi Live Class
HTML
10
star
15

instagram-redesign-app

https://teffcode.github.io/instagram-redesign-app/
HTML
10
star
16

3d-book

HTML
9
star
17

mood-tracker-platzi-live

http://teffcode.co/mood-tracker-platzi-live/
HTML
8
star
18

get-movies-studio-ghibli

http://teffcode.co/get-movies-studio-ghibli/
HTML
8
star
19

vue-js-study

🦊 First steps with Vue.js
HTML
7
star
20

scroll-animations-request-animation-frame

HTML
7
star
21

rate-uGift

https://teffcode.github.io/rate-uGift/
HTML
7
star
22

korean-drinks-with-css-subgrid

💚 Platzi Blog
HTML
7
star
23

platzi-live-class-whatsapp-redesign

HTML
5
star
24

the-ruby-worshop

💎 Questions based on this book: https://go.aws/2KhdYuZ
5
star
25

coffee-animation

😊Animation using sass
CSS
5
star
26

sleepy-time

HTML
5
star
27

hbd

🍰CSS Animation
CSS
3
star
28

live

HTML
3
star
29

recap-ts-study

Based on: https://www.youtube.com/watch?v=L1ZSk-vPVKI&ab_channel=midulive
TypeScript
3
star
30

react-study-two-effects

JavaScript
3
star
31

react-query-study-products

TypeScript
3
star
32

AnimationWithTone_ReactJS

🎵 I Use GSAP and Tone JS
JavaScript
3
star
33

teffcode.github.io

HTML
3
star
34

WebPage

This is an example of a web page with HTML, CSS and JS 💻
HTML
2
star
35

map-perspective-animation

🗺CSS animation with perspective | https://teffcode.github.io/map-perspective-animation/
HTML
2
star
36

piocamp-react-workshop

🧡Taller para PIOCAMP | ReactJS 101 🧡
JavaScript
2
star
37

EmojiWorkshop_ReactJS

👩🏻‍💻 Pioneras Dev Community | Slides -> https://goo.gl/MwEYrZ
JavaScript
2
star
38

RainAnimation_ReactJS

☁️ Twitter Like Inspiration
JavaScript
2
star
39

intersection-observer

👾Example of use
HTML
2
star
40

GitHub_RepositoriesSearchSystem_ReactJS

😺 Git4n
JavaScript
1
star
41

slideshow-reactjs

🌝 Slidehow Test
JavaScript
1
star
42

spotify-test

🎵 Spotify Web API - Test
JavaScript
1
star
43

BOOTCAMP_FRONTEND_2017

ApacheConf
1
star
44

hbd-animation

CSS
1
star
45

steps-css-greeting

🥳Greeting animation
HTML
1
star
46

reduxsauce-example

🤓 Example using reduxsauce library
1
star
47

MedellinCSS_Animation

⚡️ CSS animation ⚡️
CSS
1
star
48

CSSGrid_CustomSlides

🎤🎨 First Meetup - MedellinCSS
JavaScript
1
star
49

Splash_Ionic

🍍Splash Screen Animated
CSS
1
star
50

nodejs-study

💚 Udemy Course !
JavaScript
1
star
51

teffcode

👗 https://teffcode.github.io/teffcode/
JavaScript
1
star
52

react-ts-study-randomuser

✨ Study.
TypeScript
1
star
53

tu-haus-ideal

JavaScript
1
star
54

workshop-for-codebreakers

🥳 Basic Landing Page with HTML & CSS - TechGirlz
HTML
1
star
55

LoginAndDashdoardCrud_ReactJS

JavaScript
1
star
56

Ninja_CSSAnimation

⚔️ Start CSS animation - Ninja
HTML
1
star
57

Udemy_UnderstandJavascript

👧🏻 Online Udemy course about Javascript: Understanding the weird parts
JavaScript
1
star
58

Goku_vs_Superman

JavaScript
1
star
59

game-of-drones

🐚📄✂️ Game !
JavaScript
1
star
60

spotify-auth-api-test

🎵 Services for Spotify auth
JavaScript
1
star
61

ViewEncapsulation_AngularMedellin

🎤 Project - Angular Medellin community !
TypeScript
1
star