import { createTheme } from '@vanilla-extract/css'; import { color } from 'folds'; // Dawn / Stream-v2 palette — see docs/plans/dm_1x1_redesign.md §1, §6 and // docs/design/new-direct-messages-design/project/stream-v2-dawn.jsx const DAWN. // // Tier mapping vs. the canon (DAWN.{bg2, bg, surface}): // bg2 #0d0e11 — app/window deepest level. The DM list panel AND the chat // content area share this tone in the canon (ChatListDawn // line 130 `
` === // DawnDesktopV3 line 220 ``). // We use it for both `Background.Container` (sidebar / nav // panels) and `Surface.Container` (room view) so the two big // areas read as one uniform surface, divided only by a // 1-pixel line — matches the canon. // bg #181a20 — raised one notch. In the canon this paints chat bubbles, // file cards, the composer container. Mapped to // `SurfaceVariant.Container`. // surface #21232b — raised two notches. Used for chips, reactions, active / // hover rows. Mapped to `*.ContainerActive` family. const darkThemeData = { Background: { Container: '#0d0e11', ContainerHover: '#181a20', ContainerActive: '#21232b', ContainerLine: '#1f2228', OnContainer: '#e6e6e9', }, Surface: { Container: '#0d0e11', ContainerHover: '#181a20', ContainerActive: '#21232b', ContainerLine: '#1f2228', OnContainer: '#e6e6e9', }, SurfaceVariant: { Container: '#181a20', ContainerHover: '#21232b', ContainerActive: '#2a2d36', ContainerLine: '#2f3340', OnContainer: '#e6e6e9', }, Primary: { Main: '#9580ff', MainHover: '#a59cff', MainActive: '#b0a8ff', MainLine: '#bcb5ff', OnMain: '#0c0c0e', Container: '#3a3260', ContainerHover: '#443878', ContainerActive: '#4d3f87', ContainerLine: '#564796', OnContainer: '#e0dcff', }, Secondary: { Main: '#e6e6e9', MainHover: '#d6d6d9', MainActive: '#c6c6c9', MainLine: '#b6b6b9', OnMain: '#181a20', Container: '#21232b', ContainerHover: '#2a2d36', ContainerActive: '#34384a', ContainerLine: '#3a3e54', OnContainer: '#e6e6e9', }, Success: { Main: '#7dd3a8', MainHover: '#90dcb5', MainActive: '#9ee0bf', MainLine: '#abe5c8', OnMain: '#0e2e1f', Container: '#1a4a32', ContainerHover: '#1f5638', ContainerActive: '#23613f', ContainerLine: '#286c46', OnContainer: '#caf2d9', }, Warning: { Main: '#d4b88a', MainHover: '#dabf95', MainActive: '#dfc59e', MainLine: '#e3cba8', OnMain: '#3a2c14', Container: '#5a4422', ContainerHover: '#664e27', ContainerActive: '#71562b', ContainerLine: '#7c5e30', OnContainer: '#f3e2c5', }, Critical: { Main: '#c08e7b', MainHover: '#c89a88', MainActive: '#cea591', MainLine: '#d4ad9a', OnMain: '#3a1f17', Container: '#592e22', ContainerHover: '#653527', ContainerActive: '#6f3a2a', ContainerLine: '#7a402d', OnContainer: '#f0d4c8', }, Other: { FocusRing: 'rgba(149, 128, 255, 0.5)', Shadow: 'rgba(0, 0, 0, 1)', Overlay: 'rgba(0, 0, 0, 0.85)', }, }; export const darkTheme = createTheme(color, darkThemeData);