diff --git a/data/config.php b/data/config.php index c61c371..018f6df 100644 --- a/data/config.php +++ b/data/config.php @@ -18,7 +18,7 @@ class config{ // Add your own themes in "static/themes". Set to "Dark" for default theme. // Eg. To use "static/themes/Cream.css", specify "Cream". - const DEFAULT_THEME = "Catppuccin Latte"; + const DEFAULT_THEME = "Ascent"; // Enable the API? const API_ENABLED = false; diff --git a/static/themes/Ascent Dark.css b/static/themes/Ascent Dark.css new file mode 100644 index 0000000..2abceb1 --- /dev/null +++ b/static/themes/Ascent Dark.css @@ -0,0 +1,43 @@ +@import url("/static/themes/Ascent.css"); + +:root { + color-scheme: dark; + + --bg-gradient: linear-gradient(#16181d, #101010); + --bg-fallback: #101010; + --main: #e7e7e7; + --muted: #999; + --border: #2a2a2a; + --surface: #18181a; + --surface-hover: #222428; + --code-bg: #222428; + --input-bg: #222325; + --input-border: #444; + --input-focus: #284186; + --metadata-bg: #18181a; + --button: #ececec; + --button-bg: #242424; + --button-bg-hover: #303030; + --button-top-shadow: rgba(255, 255, 255, 0.1); + --button-bottom-shadow: rgba(0, 0, 0, 0.1); + --accent: #2f80fa; + --accent-hover: #1b74fa; + --1d2021: var(--bg-fallback); + --282828: var(--surface); + --3c3836: var(--surface-hover); + --504945: var(--border); + --928374: var(--muted); + --a89984: var(--main); + --bdae93: var(--main); + --8ec07c: #bbf7d0; + --ebdbb2: var(--main); + --fbf1c7: var(--main); + --comment: #89929f; + --default: var(--main); + --html: var(--main); + --keyword: #b890ff; + --string: #8ee8b5; + --green: #22c55e; + --yellow: #fbbf24; + --red: #fb7185; +} diff --git a/static/themes/Ascent Light.css b/static/themes/Ascent Light.css new file mode 100644 index 0000000..0ae7d5a --- /dev/null +++ b/static/themes/Ascent Light.css @@ -0,0 +1,43 @@ +@import url("/static/themes/Ascent.css"); + +:root { + color-scheme: light; + + --bg-gradient: linear-gradient(#eefeff, #fff); + --bg-fallback: #fff; + --main: #202020; + --muted: #666; + --border: #ddd; + --surface: #fafafa; + --surface-hover: #efefef; + --code-bg: #dadce0; + --input-bg: #f7f7f7; + --input-border: #ccc; + --input-focus: #7c9fff; + --metadata-bg: #ebecee; + --button: #183352; + --button-bg: #dfeaf8; + --button-bg-hover: #d1def0; + --button-top-shadow: rgba(255, 255, 255, 0.45); + --button-bottom-shadow: rgba(55, 82, 122, 0.12); + --accent: #2f80fa; + --accent-hover: #1b74fa; + --1d2021: var(--bg-fallback); + --282828: var(--surface); + --3c3836: var(--surface-hover); + --504945: var(--border); + --928374: var(--muted); + --a89984: var(--main); + --bdae93: var(--main); + --8ec07c: #257a4d; + --ebdbb2: var(--main); + --fbf1c7: var(--main); + --comment: #68737f; + --default: var(--main); + --html: var(--main); + --keyword: #8b4fd1; + --string: #0f7a4d; + --green: #178b3f; + --yellow: #b7791f; + --red: #d22d3d; +} diff --git a/static/themes/Ascent.css b/static/themes/Ascent.css new file mode 100644 index 0000000..3ea7908 --- /dev/null +++ b/static/themes/Ascent.css @@ -0,0 +1,112 @@ +@font-face { + font-family: "Instrument Serif"; + src: url("/static/font/InstrumentSerif-Regular.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +:root { + color-scheme: light; + + --bg-gradient: linear-gradient(#eefeff, #fff); + --bg-fallback: #fff; + --main: #202020; + --muted: #666; + --border: #ddd; + --surface: #fafafa; + --surface-hover: #efefef; + --code-bg: #dadce0; + --input-bg: #f7f7f7; + --input-border: #ccc; + --input-focus: #7c9fff; + --metadata-bg: #ebecee; + --button: #183352; + --button-bg: #dfeaf8; + --button-bg-hover: #d1def0; + --button-top-shadow: rgba(255, 255, 255, 0.45); + --button-bottom-shadow: rgba(55, 82, 122, 0.12); + --accent: #2f80fa; + --accent-hover: #1b74fa; + --warning: #ff9800; + + --1d2021: var(--bg-fallback); + --282828: var(--surface); + --3c3836: var(--surface-hover); + --504945: var(--border); + --928374: var(--muted); + --a89984: var(--main); + --bdae93: var(--main); + --8ec07c: #257a4d; + --ebdbb2: var(--main); + --fbf1c7: var(--main); + --comment: #68737f; + --default: var(--main); + --html: var(--main); + --keyword: #8b4fd1; + --string: #0f7a4d; + --green: #178b3f; + --yellow: #b7791f; + --red: #d22d3d; +} + +@media (prefers-color-scheme: dark) { + :root { + color-scheme: dark; + + --bg-gradient: linear-gradient(#16181d, #101010); + --bg-fallback: #101010; + --main: #e7e7e7; + --muted: #999; + --border: #2a2a2a; + --surface: #18181a; + --surface-hover: #222428; + --code-bg: #222428; + --input-bg: #222325; + --input-border: #444; + --input-focus: #284186; + --metadata-bg: #18181a; + --button: #ececec; + --button-bg: #242424; + --button-bg-hover: #303030; + --button-top-shadow: rgba(255, 255, 255, 0.1); + --button-bottom-shadow: rgba(0, 0, 0, 0.1); + + --1d2021: var(--bg-fallback); + --282828: var(--surface); + --3c3836: var(--surface-hover); + --504945: var(--border); + --928374: var(--muted); + --a89984: var(--main); + --bdae93: var(--main); + --8ec07c: #bbf7d0; + --ebdbb2: var(--main); + --fbf1c7: var(--main); + --comment: #89929f; + --default: var(--main); + --html: var(--main); + --keyword: #b890ff; + --string: #8ee8b5; + --green: #22c55e; + --yellow: #fbbf24; + --red: #fb7185; + } +} + +html, +body { + background: var(--bg-fallback) var(--bg-gradient) no-repeat; + background-attachment: fixed; +} + +.home { + background: transparent; + background-attachment: fixed; +} + +@media only screen and (max-width: 1000px) { + .web.has-answer .left::before { + font-family: "Instrument Serif", Georgia, serif; + font-weight: 400; + } +} diff --git a/static/themes/Material Ocean.css b/static/themes/Material Ocean.css new file mode 100644 index 0000000..4114515 --- /dev/null +++ b/static/themes/Material Ocean.css @@ -0,0 +1,50 @@ +:root { + color-scheme: dark; + + /* semantic tokens */ + --bg-fallback: #00010a; + --main: #e5e9f0; + --muted: #7b8ea8; + --border: #4c566a; + --surface: #0f111a; + --surface-hover: #3b4252; + --code-bg: #161824; + --input-bg: #00010a; + --input-border: #4c566a; + --input-focus: #c0303e; + --metadata-bg: rgba(15, 17, 26, 0.85); + --button: #e5e9f0; + --button-bg: #3b4252; + --button-bg-hover: #4c566a; + --button-top-shadow: rgba(255, 255, 255, 0.06); + --button-bottom-shadow: rgba(0, 0, 0, 0.28); + --accent: #ff4151; + --accent-hover: #e63a4a; + --accent-text: #ffffff; + --warning: #ebcb8b; + + /* legacy palette variables */ + --1d2021: #00010a; + --282828: #0f111a; + --3c3836: #3b4252; + --504945: #4c566a; + + --928374: #e5e9f0; + --a89984: #e5e9f0; + --bdae93: #e5e9f0; + --8ec07c: #a3be8c; + --ebdbb2: #e5e9f0; + --fbf1c7: #e5e9f0; + + /* code highlighting */ + --comment: #3b4252; + --default: #e5e9f0; + --keyword: #88c0d0; + --string: #81a1c1; + --html: #e5e9f0; + + /* status colors */ + --green: #a3be8c; + --yellow: #ebcb8b; + --red: #bf616a; +}