Probando chakra-ui con React y Typescript.
- Components
- Style props
- Default theme
- Responsiveness
- How to use Chakra UI in your project
Se puede empazar siguiendo la guia en la documentacion.
- Crear o inciar proyecto de react con typescript usando
vite
yarn create vite
- Instalar dependencias
yarn
oyarn dev
- Instalar chakra-ui en este caso con vite.
yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motion
- Configurar chakra provider
Los componentes los podemos ver aqui
-
Aspect Ratio component : usa un iframe para embeber, imagenes, videos, o visualizar mapas.
-
Box component: Es el componente base sobre el que esta constuido todo en chakra-ui, se renderiza sobre un div.
-
Flex component: es un Box componente pero con la propiedad CSS
display: flex
-
Stack component: Es un layout component y facilita stack components juntos y aplicar espacio entre ellos, ya sea verticual(VStack) u horizontal(HStack).
-
Text component: es usado para renderizar texto y parrafor en una interfaz, por defecto rederiza
<p>
tag. -
Heading component: Renderiza headlines. Puedo darle las propiedades "as='h1'" y "fontSize", etc.
-
Style Props: es una forma para alterar estilos de un componente, pasando las propiedades. Ejm. margin
m={2}
maxWidt conmaxW="960px"
. Nos permite editar estilos sin tener que tocar el css directamente. Estas props las podemos encontrar en Style Props -
Pseudo Style Props: debemos usar el guión bajo antes de la prop para aplicarlos ejm:
_hover
, el valor que se pone dentro de esta prop es un objeto. Estas props ayudaran a permitir hacer cambios mas detallados al css desde estas props.
Hay un kit de diseño de Ui para figma aqui.
Vamos a replicar el siguiente diseño que esta en figma, usando chakra Ui.
- Construyendo header Section.
- Construyendo Pricing Section (parte izquierda).
- Constuyendo Princing Section (parte derecha).: Tengo que copiar los svg de los inconos de check en de figma.
- Constuyendo la Feature Section o seccion de caracteristicas.: Se copia los SVG en el archivos
Icons.tsx
- Aqui creamos 2 componentes:
- Iconos.
- Feature: continene el icono y texto.
- Features: continene el componente Feature
El objeto theme
es donde se define la paleta de colores de mi aplicacion, como el tipo de escala, el grupo de fuentes, brakpoints, volores del vorder radius y muchas otras cosas mas. Esta basado en [Styled System Theme Specification](Styled System Theme Specification)
- Colors
- Fonts
- Breakpoints
- Spacing
- Header componente:
- Heading
fontWeight
replace 800 value to extrabold. - replace
fontSize
48px value to 5xl. - replace del componente
Text
la propiedadfontWeig
el valor 500 por medium. - reemplaza 24px por 2xl en la propiedad
fontSize
del componenteText
- reemplaza 112px por 28 la propiedad
pb
del componenteBox
- reemplaza #F7FAFC por gray.50 la propiedad
color
del componenteBox
- Heading
El hacer uso de los theme tokens nos agrega consistencia a la hora de crear y actualizar nuestra ui.
Chakra-ui soport estilos responsive fuera de la caja, es decir sin añadir @media
queries y añadir
estilos anidados a el codigo, chalra permite proveer un objeto y de valores de un array de estilos
mobile-firts para mis estilos responsive. <Box w={[300, 400, 500]}>
Usamos @media(min-width)
para asegurarnos que nuestra interfaz es mobile-first. Aqui podemos usar
los breakpoints de los theme tokens de chakra-ui.
- Refactorizar Header component para que sea responsive.
- Refactoizar Princing component para que sea responsive.
- Refactorizar Features componente para que sea responsive.