From 3d51660e05c9ec1f55b661a1541da7eb3fa5e19e Mon Sep 17 00:00:00 2001 From: taskylizard <75871323+taskylizard@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:52:35 +0000 Subject: [PATCH] fix(theme): proper light/dark theme --- biome.json | 3 ++ bun.lockb | Bin 77257 -> 79644 bytes package.json | 8 +-- src/pages/EventHistory.tsx | 6 +-- src/pages/Page.tsx | 14 ++++- src/pages/ProbeCard.tsx | 6 ++- src/pages/TimezoneSwitcher.tsx | 4 +- src/{styles.css => styles.scss} | 13 +++-- tailwind.config.ts | 88 +++++++++++++++++++++++++++++++- 9 files changed, 125 insertions(+), 17 deletions(-) rename src/{styles.css => styles.scss} (60%) diff --git a/biome.json b/biome.json index f283c16..3d55952 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,8 @@ { "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "files": { + "ignore": ["tailwind.config.ts"] + }, "organizeImports": { "enabled": true }, diff --git a/bun.lockb b/bun.lockb index c0e756557b3bd61a8ed4154d980e155a388304c5..57a2057eda1076f08b75949758001f604861eb81 100755 GIT binary patch delta 15372 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 -
+

Recent

{Object.entries(groups).map(([date, groupEvents]) => ( <> -

{date}

+

{date}

{groupEvents.map((event) => { const source = event.probeId ? probeConfigs.find((it) => it.id === event.probeId) @@ -34,7 +34,7 @@ export function EventHistory({ return (

{source?.title}

-

+

{event.description ? event.description : undefined || event.result === 'success' diff --git a/src/pages/Page.tsx b/src/pages/Page.tsx index c28c6af..0fdd2e2 100644 --- a/src/pages/Page.tsx +++ b/src/pages/Page.tsx @@ -45,11 +45,12 @@ export async function StatusPage({ + `} ) : ( - (➠ {defaultTimezone}) + (➠ {defaultTimezone}) ↗ )}

) diff --git a/src/styles.css b/src/styles.scss similarity index 60% rename from src/styles.css rename to src/styles.scss index 674b9fa..eec1826 100644 --- a/src/styles.css +++ b/src/styles.scss @@ -3,7 +3,6 @@ @tailwind utilities; @media (prefers-reduced-motion: reduce) { - *, ::before, ::after { @@ -17,10 +16,18 @@ } } +:root { + color-scheme: light; + + &.dark { + color-scheme: dark; + } +} + a { - @apply text-brand decoration-dashed hover:decoration-solid focus:decoration-solid; + @apply text-sky-10 dark:text-sky-dark-10 decoration-dashed hover:decoration-solid focus:decoration-solid; } body { - @apply min-h-screen bg-neutral-900 focus:outline-none; + @apply min-h-screen font-sans antialiased bg-neutral-1 dark:bg-neutral-dark-1 focus:outline-none max-w-none; } diff --git a/tailwind.config.ts b/tailwind.config.ts index 2a655ec..936f8d9 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,11 +1,95 @@ +import * as radixColors from '@radix-ui/colors' +import typography from '@tailwindcss/typography' import type { Config } from 'tailwindcss' +const colors = {} + +Object.entries(radixColors).forEach(([key, value]) => { + const [baseColor, ...prefixes] = key + .split(/(?=[A-Z])/) + .map((word) => word.toLowerCase()) + colors[baseColor] ??= {} + Object.entries(value).forEach(([colorKey, colorValue]) => { + colors[baseColor][[...prefixes, colorKey.replace(/\D+/, '')].join('-')] = + colorValue + }) +}) + +const brand = 'violet' as const + +const gray = ( + { + tomato: 'mauve', + red: 'mauve', + crimson: 'mauve', + pink: 'mauve', + plum: 'mauve', + purple: 'mauve', + violet: 'mauve', + + indigo: 'slate', + blue: 'slate', + sky: 'slate', + cyan: 'slate', + + teal: 'sage', + mint: 'sage', + green: 'sage', + + grass: 'olive', + lime: 'olive', + + yellow: 'sand', + amber: 'sand', + orange: 'sand', + brown: 'sand' + } as const +)[brand] + +colors['primary'] = colors[brand] +colors['neutral'] = colors[gray] +colors['white'].DEFAULT = 'white' +colors['black'].DEFAULT = 'black' + +const prose = { + body: '11', + headings: '12', + lead: '11', + links: 'blue.11', + bold: '12', + counters: '11', + bullets: '12', + hr: '6', + quotes: '12', + 'quote-borders': '6', + captions: '11', + code: '12', + 'pre-code': '12', + 'pre-bg': '3', + 'th-borders': '7', + 'td-borders': '6' +} + +const getProse = (theme: (key: string) => string) => { + const res = {} + Object.keys(prose).forEach((key) => { + const value = `colors.${prose[key].replace(/^\d/, 'gray.$&')}` + res[`--tw-prose-${key}`] = theme(value) + res[`--tw-prose-invert-${key}`] = theme(value.replace(/\d+$/, 'dark-$&')) + }) + return res +} + export default { + darkMode: 'class', content: ['./src/**/*.tsx'], theme: { extend: { - colors: { brand: '#9EB1FF' } + colors, + extend: { + typography: ({ theme }) => ({ DEFAULT: { css: getProse(theme) } }) + } } }, - plugins: [] + plugins: [typography] } satisfies Config