diff --git a/site/public/fonts/jetbrains-mono-400.woff2 b/site/public/fonts/jetbrains-mono-400.woff2 new file mode 100644 index 0000000..5858873 Binary files /dev/null and b/site/public/fonts/jetbrains-mono-400.woff2 differ diff --git a/site/public/fonts/jetbrains-mono-700.woff2 b/site/public/fonts/jetbrains-mono-700.woff2 new file mode 100644 index 0000000..3a4e333 Binary files /dev/null and b/site/public/fonts/jetbrains-mono-700.woff2 differ diff --git a/site/src/pages/index.astro b/site/src/pages/index.astro new file mode 100644 index 0000000..de7bb5c --- /dev/null +++ b/site/src/pages/index.astro @@ -0,0 +1,9 @@ +--- +import "../styles/theme.css"; +--- + + termscp + +

termscp

+ + diff --git a/site/src/styles/theme.css b/site/src/styles/theme.css new file mode 100644 index 0000000..89e6fdf --- /dev/null +++ b/site/src/styles/theme.css @@ -0,0 +1,90 @@ +@import "tailwindcss"; + +/* Self-hosted font */ +@font-face { + font-family: "JetBrains Mono"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("/fonts/jetbrains-mono-400.woff2") format("woff2"); +} +@font-face { + font-family: "JetBrains Mono"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("/fonts/jetbrains-mono-700.woff2") format("woff2"); +} + +/* Map Catppuccin CSS vars to Tailwind theme tokens */ +@theme { + --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; + --color-base: var(--ctp-base); + --color-mantle: var(--ctp-mantle); + --color-crust: var(--ctp-crust); + --color-text: var(--ctp-text); + --color-subtext: var(--ctp-subtext0); + --color-overlay: var(--ctp-overlay0); + --color-line: var(--ctp-surface0); + --color-blue: var(--ctp-blue); + --color-mauve: var(--ctp-mauve); + --color-green: var(--ctp-green); + --color-yellow: var(--ctp-yellow); + --color-peach: var(--ctp-peach); + --color-red: var(--ctp-red); + --color-teal: var(--ctp-teal); +} + +/* Catppuccin Frappé — dark, default */ +:root, +[data-theme="frappe"] { + --ctp-base: #303446; + --ctp-mantle: #292c3c; + --ctp-crust: #232634; + --ctp-text: #c6d0f5; + --ctp-subtext0: #a5adce; + --ctp-overlay0: #737994; + --ctp-surface0: #414559; + --ctp-blue: #8caaee; + --ctp-mauve: #ca9ee6; + --ctp-green: #a6d189; + --ctp-yellow: #e5c890; + --ctp-peach: #ef9f76; + --ctp-red: #e78284; + --ctp-teal: #81c8be; +} + +/* Catppuccin Latte — light */ +[data-theme="latte"] { + --ctp-base: #eff1f5; + --ctp-mantle: #e6e9ef; + --ctp-crust: #dce0e8; + --ctp-text: #4c4f69; + --ctp-subtext0: #6c6f85; + --ctp-overlay0: #9ca0b0; + --ctp-surface0: #ccd0da; + --ctp-blue: #1e66f5; + --ctp-mauve: #8839ef; + --ctp-green: #40a02b; + --ctp-yellow: #df8e1d; + --ctp-peach: #fe640b; + --ctp-red: #d20f39; + --ctp-teal: #179299; +} + +html { + scroll-behavior: smooth; + font-family: var(--font-mono); + background: var(--color-base); + color: var(--color-text); +} + +.blink { + display: inline-block; + width: 0.5rem; + height: 1em; + background: var(--color-green); + vertical-align: -1px; + animation: blink 1s steps(1) infinite; +} +@keyframes blink { 50% { opacity: 0; } }