No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Estilos CSS para Sección Principal en Figma y HTML

9/20
Recursos

¿Cómo crear una sección principal en tu proyecto web?

Cuando estamos desarrollando un proyecto web, la sección principal es fundamental. Esta es la parte que captura la atención del usuario y debe comunicar el propósito y los valores de la empresa de manera efectiva. En este tutorial, exploraremos cómo hacer esto paso a paso. Nos basaremos en un diseño previo de Figma y lo convertiremos en una pieza funcional con HTML y CSS (incluyendo Sass para un manejo más eficiente de nuestros estilos).

¿Qué hay en el diseño de Figma?

Para empezar, analizamos el diseño en Figma, donde la sección principal incluye:

  • Un título grande (H1) que dice "Impacto tecnológico".
  • Un párrafo que brinda información relevante.
  • Un botón "call to action" que invita a obtener más información.
  • Una imagen complementaria que equilibra el diseño visual.

Estos elementos están dispuestos de manera que el texto sea claro y atractivo, con una orientación visual llamativa.

¿Cómo implementar el diseño en HTML y CSS?

Para traducir el diseño a código:

  1. HTML Estructura:

    • Usa un article para contener todo.
    • Incluye un div para el texto y otro para la imagen.
    • Dentro del texto div, agrega una estructura con H1, P y un botón.
  2. Código en HTML:

    <article class="section-principal">
        <div class="text-container">
            <h1>Impacto tecnológico</h1>
            <p>Explicando el impacto ambiental...</p>
            <button type="button">Conoce más</button>
        </div>
        <div class="image-container">
            <img src="ruta/a/tu/imagen.jpg" alt="Descripción de la imagen">
        </div>
    </article>
    

¿Cómo estilizar nuestra sección usando Sass?

Para los estilos, trabajamos con el archivo main.scss. Aquí, utilizamos Flexbox para alinear los elementos de manera eficiente y cambiamos el tamaño de los textos y otros componentes para que se adapten al diseño deseado.

  1. Article y Flexbox:

    .section-principal {
        display: flex;
        justify-content: space-between;
        padding: 50px 45px; // margen para separar del navbar y alineación
    }
    
  2. Estilo de los textos e imagen:

    .text-container {
        width: 50%;
        h1 {
            font-size: 3em;
        }
        p {
            font-size: 1.5em;
        }
        button {
            width: 12vw;
            padding: 20px;
            background-color: $cuaternion-color;
            color: white;
            font-size: 1em;
            border-radius: 35px;
            border: none;
        }
    }
    
    .image-container {
        width: 50%;
        img {
            max-width: 100%;
            border-radius: 19px;
        }
    }
    
  3. Variables de Sass: Utilizamos variables para tamaños y colores consistentes:

    $paragraph-size: 1.5em;
    $cuaternion-color: #f0f0f0; // Cambia este color según tu paleta
    

¿Qué detalles finales nos aseguran una mejor implementación?

  1. Ajustes Responsivos: Asegúrate de usar unidades como vw y em que se ajustan bien a diferentes tamaños de pantalla. Esto hace que tu sección sea más responsiva.

  2. Espaciado uniforme: Utiliza padding y margin para dar un respiro visual, y ajusta gap en Flexbox para separar elementos de manera consistente.

  3. Optimización de imágenes: Asegúrate de que las imágenes no se alteren al escalar, estableciendo un max-width adecuado y manteniendo las proporciones con height en auto.

Con estos pasos y consejos, habrás creado una sección principal efectiva que no solo es funcional, sino que sigue un diseño visual atractivo. ¡Continúa explorando y ajustando para obtener resultados aun más pulidos!

Aportes 31

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Así me está quedando
Mobile

Desktop

Supongo que ya muchos lo saben, pero por si a caso:

Asi podemos reiniciar el padding y margin de todos los elementos.

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

Yo lo hice con grid xd

main {
    color: $primary-text-color;
    padding: 0 64px;
    max-width: 100vw;
    article {
        display: grid;
        grid-template-columns: 50% auto;
        align-items: center;
        justify-content: space-between;
        width: auto;
        min-height: 80vh;
        h1 {
            font-size: 3em;
            margin-top: 0;
            font-weight: 700;
            line-height: 78px;
        }
        p {
            font-size: $paragraph-size;
            font-weight: 400;
            line-height: 32.5px;
        }
        button{
            background: none;
            border-style: none;
            font-weight: 700;
            font-size: 24px;
            padding: 20px;
            border-radius: 35px;
            color: $primary-color;
            background-color: $additional-color;
        }
        img{
            justify-self: end;
            width: 25vw; 
            object-fit: contain;
            border-radius: 20px;
        }
    }

Consejo
.
En la parte Mobile en los assets no encontré ninguno para el nav así que busque uno por internet en favicon pero el problema es que ese al igual que muchos iconos vienen en color negro y la solución que ayer fue modificar el color de la img para pasar de un color al otro

.
Los principales pasos que use para hacer el cambio fueron:
.

  • Crear un div llamado icons-mobile que estuviera oculto y se mostrara cuando el tamaño de pantalla fuera el adecuado, ese div contenía la url para tener la img
    .
    Ya en sass agregue esto :
 .icons-mobile
       display: flex
       width: 32px
       height: 32px
       filter: grayscale(80%) invert(500%) sepia(90%) saturate(70041%) hue-rotate(330deg) brightness(50%) contrast(100%)

.
lo importante fue filter y mediante varios intentos logre encontrar un color parecido, espero que os sirva y este es el resultado.
.

Sorry, pero por más que estoy disfrutando el curso, no me gusta que hagan videos taaaan largos.

siento que en esta clase fuimos muy desordenados(cada quien trabaja como quiere, se entiende) pero mi punto de vista es que es mejor ir en orden y mas cuando se esta explicando ejemplo: main, h1, p, button y faltaron cosas por agregar ejm: (font-weight, line-weight), igual me esta gustando como explica la profe es muy detallada en todo y espero que en la siguiente clase se agregue o nos explique porque no se agrega.

Yo la verdad muy en lo persona no me esta gustando como están dando el curso perfecto se nota que sabe sobre la materia la profesora pero no lleva un orden y creo que todavía le falta conocer un poco mas sobre la plataforma VSC. Espero que en un futuro mejore pero por el momento creo que me esta costando algo acoplarme al curso. Mucho éxito.

Hola Chicos!
Todos los elementos en html por defecto traen un apdding, margin, dependiendo del agente (el explorador: chrome, edge, safari, firefox, etc) se les agrega mas o menos. Para reiniciar estos estilos, y poder manejarlos, esta tecnica es usada de manera profesional:
El selector universal (*) ->
*{
box-sizing:border-box;
padding:0;
margin:0;
}

el párrafo, que por alguna razón no lo tenía desde el principio.

<p>
                    Debido al impacto ambiental siendo las acciones <br>
                    humanas las que modifican el ambiente, Eco-store <br>
                    se compromete a elaborar sus productos de manera <br>
                    artesanal y con materiales que favorecen al cuidado <br>
                    del medio ambiente.
                </p>```

✨Aprovecha al máximo el espacio en tu VSC 🦄

Quitar scroll horizontal

Seguro ya notaste que es un poco molesto ese scroll horizontal cuando tu código se extiende demasiado.

¿Te gustaría tenerlo todo a la vista? Solo debes agregar tus preferencias en el archivo settings.json de vsc.

Abrir archivo settings.json

  • Ctrl + , (coma)
  • Open settings: Esquina derecha superior 📝
    • Icono hoja con esquina doblada y con flecha :v
{
    "editor.wordWrap": "on", //👈👀
}

Te dejo mis apuntes por si quieres ver más configuraciones Configura VSC más el tutorial de configuración de vsc.

Así se vería tu VSC si lo configuras para optimizar al máximo el espacio, esto sirve si tienes una compu muy pequeña.

Encontré la siguiente información para nombrar el cuarto color de las variables globales: **"Quaternary"** se refiere al número cuatro en una secuencia, así que si estás hablando de un cuarto elemento en una secuencia, "quaternary" sería el término más adecuado. **"Quaternion"**, por otro lado, es un término matemático que se refiere a un sistema de números que extiende los números complejos.

Esa técnica de darle color de fondo al elemento, está buena para ubicar de una manera mas fácil los elementos.

Código en el repositorio de GitHub [platzi/cursos-sass (github.com)](https://github.com/platzi/cursos-sass)

Hola a todos:

Para que puedan cambiar los colores de los iconos realmente les recomiendo esta web. Solo tienen que poner el valor numerico del color que quieren y le saldra la linea de css filter que necesitan para cambiar de color el icono.
(https://codepen.io/sosuke/pen/Pjoqqp)

Madre mía María me estás mareando 😵‍💫 Usen box-sizing: border box; Aunque lo de los selectores anidados en GOD 10/10
Helloo! Creo que voy adaptándome súper rápido a Sass. Sin embargo, para esta parte de la etiqueta \<article> yo apliqué CSS GRID porque me pareció más cómodo de adaptar el código para ambas versiones (mobile y desktop) Mobile: ![](https://static.platzi.com/media/user_upload/image-e87f6bdb-5d8d-4645-b576-0c4200083e8c.jpg) Versión de escritorio: ![](https://static.platzi.com/media/user_upload/image-e05d2947-6097-4ca1-8861-38dc6a3cb3be.jpg) Por aquí mi perfil de Github con los avances, si les gusta me encantaría que se pasaran a dejarme estrellita o seguirnos entre todos ;) <https://github.com/iamanyyeei/EcoStore-Sass-Basic>
Estoy utilizando box-shadow:, text-shadow:,  border-radius:, y u margin-top para usar el espacio ![](https://static.platzi.com/media/user_upload/image-bb94b81c-db27-4131-9d38-f89461b27e46.jpg)
😍que hermoso aprender un nuevo estilo scss y tener un poco mas de conocimiento para diseñar paginas web frontend
Definitivamente, este es mi curso favorito de Platzi 💚💚💚 ![](https://static.platzi.com/media/user_upload/image-63dcb535-48b1-4cb7-95ef-4c33a8ce14e6.jpg)
lo hice asi: ```js main{ width: 100%; height: auto; article { width: 90%; margin-inline: auto; display: grid; gap: 2rem; grid-template-columns: repeat(2, minmax(300px, 1fr)); .impact-section{ color: $Other-color-two; h1{ font-size: 3rem; color: $Other-color-two; } p{ font-size: 1.5rem; } button{ margin-top: 5rem; padding: 1rem 2rem; border: none; border-radius: 24px; display: block; background-color: #FA9500; color: $prim-color; font-weight: bold; } } .image-section{ img{ width: 100%; height: 90vh; border-radius: 8px; } } } } @media (max-width: 700px){ header{ nav{ width: 100%; padding: 0; } .icons{ button{ padding: 0; } } } main{ article { gap: 1rem; grid-template-columns: 1fr; grid-template-rows: repeat(2, minmax(300px, autp)); .impact-section{ button{ margin: 3rem; margin-inline: auto; } } .image-section{ img{ height: auto; } } } } } ```
ayer
asi como la tecnica de poner fondo de color a los elementos para ver el codigo va por buen camino.. tambien esta la tecnica de poner un margen a los div para todo en cuadriculas 🕵️‍♂️ div{ border : black solid 2px; }
Cuando veo cursos del profe Diego, veo en el el orden de las cosas... La profe es muy desordenada, trabaja en un flujo salteado, primero le da estilos a la imagen cuando es lo ultimo que se debe estilar, y asi... Puede que cada uno tenga su forma de trabajar, pero como plataforma deben tener un estandar de aprendizaje.
Demasiado confuso el curso hasta ahora. Más que nada por lo desordenada que viene siendo la manera de escribir código en las últimas clases.

Genial!

Creo que la profa lo había hecho bien en un principio, contenedores con 50% de width y la imagen con 100% de width de su contenedor que mide 50% de la página. Luego no se porque se arrepintió y lo cambió todo. ```js article{ display: flex; width: auto; padding: 10px 25px; color: $primary-text-color; .hero-info{ width: 50%; } .section-image{ width: 50%; img{ width: 100%; border-radius: 5%; } } } ```
En vez de utilizar \
para separar el párrafo en el HTML, se le puede asignar un tamaño en porcentajes 👇 ```css .main__impact-section{ color: $primary-text-color; width: 50%; p{ width: 70%; } } ```.main\_\_impact-section{    color: $primary-text-color;    width: 50%;    p{      width: 70%;    }
yo lo hice con grid, ya delimitando el width: 1300px y centrarlo `article {  width: auto;  max-width: 1300px;  display: grid;  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));  margin: 0 auto;  gap: 20px;  justify-items: end;  color: $primary-text-color;  .inpact-section {    padding: 0 20px;    h2{        margin: 20px 0;        font-size: 3.2rem;        font-weight: 700;    }    p{        font-size: 1.3rem;        line-height: 2.3rem;    }    button{        margin-top: 80px;        width: 180px;        height: 50px;        font-size: 1rem;        color: white;        background-color: $background;        border-radius: 50px;        border: none;        cursor: pointer;    }  }  .image-section {    padding: 0 20px;    img {      width: 100%;      max-height: 680px;      object-fit: cover;      border-radius: 20px;    }  }}`

.

Así va quedando (modo Dark)

Si el padding a los lados es igual pueden usar también:

padding: 0px 20px; // Aplica un padding superior e inferior de 0px y a los lados de 20px
ó
padding-inline: 20px // Aplica el padding unicamente a los lados, sin afectar el padding superior e inferior.

Nota:
padding-block se usa para aplicar el padding únicamente arriba y abajo sin afectar el padding de los lados.