Chakra UI Theme (Colors, etc) - Horizon UI
The theme object is where you define your Horizon UI's color palette, type scale, font stacks, breakpoints, border radius values, and more.
Colors#
Add a theme.colors
object to provide colors for your project. By default these
colors can be referenced by the color
, borderColor
, backgroundColor
,
fill
, stroke
, styles.
We recommend adding a palette that ranges from 50
to 900
. Tools like
Themera,
Smart Swatch,
Coolors or Palx are
available to generate these palettes.
// theme.jsexport default {colors: {transparent: "transparent",black: "#000",white: "#fff",gray: {50: "#f7fafc",// ...900: "#171923",},// ...},}
Black & White#
Brand#
Gray#
Red#
Orange#
Yellow#
Green#
Teal#
Blue#
Cyan#
Purple#
Pink#
Typography#
To manage Typography options, the theme object supports the following keys:
fonts
(font families)fontSizes
fontWeights
lineHeights
letterSpacings
// example theme objectexport default {colors: {...},fonts: {body: "system-ui, sans-serif",heading: "Helvetica, sans-seriff",mono: "Menlo, monospace",},fontSizes: {xs: "0.75rem",sm: "0.875rem",md: "1rem",lg: "1.125rem",xl: "1.25rem","2xl": "1.5rem","3xl": "1.875rem","4xl": "2.25rem","5xl": "3rem","6xl": "3.75rem","7xl": "4.5rem","8xl": "6rem","9xl": "8rem",},fontWeights: {hairline: 100,thin: 200,light: 300,normal: 400,medium: 500,semibold: 600,bold: 700,extrabold: 800,black: 900,},lineHeights: {normal: "normal",none: 1,shorter: 1.25,short: 1.375,base: 1.5,tall: 1.625,taller: "2","3": ".75rem","4": "1rem","5": "1.25rem","6": "1.5rem","7": "1.75rem","8": "2rem","9": "2.25rem","10": "2.5rem",},letterSpacings: {tighter: "-0.05em",tight: "-0.025em",normal: "0",wide: "0.025em",wider: "0.05em",widest: "0.1em",},};
Breakpoints#
Horizon UI comes with a predefined set of commonly used breakpoints.
Learn more about Responsive Styles and Customizing Breakpoints.
// theme.jsimport { createBreakpoints } from "@chakra-ui/theme-tools"export default createBreakpoints({sm: "320px",md: "768px",lg: "1024px",xl: "1440px","2xl": "96em",})
Spacing#
The space
key allows you to customize the global spacing and sizing scale for
your project. By default these spacing value can be referenced by the padding
,
margin
, and top
, left
, right
, bottom
styles.
export default {space: {px: "1px",0.5: "0.125rem",1: "0.25rem",1.5: "0.375rem",2: "0.5rem",2.5: "0.625rem",3: "0.75rem",3.5: "0.875rem",4: "1rem",5: "1.25rem",6: "1.5rem",7: "1.75rem",8: "2rem",9: "2.25rem",10: "2.5rem",12: "3rem",14: "3.5rem",16: "4rem",20: "5rem",24: "6rem",28: "7rem",32: "8rem",36: "9rem",40: "10rem",44: "11rem",48: "12rem",52: "13rem",56: "14rem",60: "15rem",64: "16rem",72: "18rem",80: "20rem",96: "24rem",},}