commit 7ccec9fc370931036756ab21e65684fa96ce8e71 Author: Tom Butcher Date: Sun Apr 6 23:12:28 2025 +0100 Initial Commit diff --git a/css/web/fonts.css b/css/web/fonts.css new file mode 100644 index 0000000..bdffa5b --- /dev/null +++ b/css/web/fonts.css @@ -0,0 +1,101 @@ +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 900; + src: + url("/fonts/SF-Pro-Rounded-Black.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Black.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Black.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + + font-weight: 700; + src: + url("/fonts/SF-Pro-Rounded-Bold.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Bold.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Bold.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 800; + src: + url("/fonts/SF-Pro-Rounded-Heavy.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Heavy.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Heavy.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: normal; + font-weight: 200; + src: + url("/fonts/SF-Pro-Rounded-Light.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Light.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Light.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 500; + src: + url("/fonts/SF-Pro-Rounded-Medium.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Medium.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Medium.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 400; + src: + url("/fonts/SF-Pro-Rounded-Regular.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Regular.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Regular.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 600; + src: + url("/fonts/SF-Pro-Rounded-Semibold.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Semibold.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Semibold.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 300; + src: + url("/fonts/SF-Pro-Rounded-Thin.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Thin.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Thin.otf") format("opentype"); +} + +@font-face { + font-family: "SF-Pro-Rounded"; + font-style: normal; + font-weight: 100; + src: + url("/fonts/SF-Pro-Rounded-Ultralight.woff2") format("woff2"), + url("/fonts/SF-Pro-Rounded-Ultralight.woff") format("woff"), + url("/fonts/SF-Pro-Rounded-Ultralight.otf") format("opentype"); +} + +@font-face { + font-family: "Grold Rounded Slim"; + font-style: normal; + font-weight: normal; + src: + url("/fonts/GroldRoundedSlim-Bold.woff2") format("woff2"), + url("/fonts/GroldRoundedSlim-Bold.woff") format("woff"), + url("/fonts/GroldRoundedSlim-Bold.ttf") format("truetype"); +} diff --git a/css/web/global.css b/css/web/global.css new file mode 100644 index 0000000..e217245 --- /dev/null +++ b/css/web/global.css @@ -0,0 +1,502 @@ +* { + font-family: "SF-Pro-Rounded"; +} + +body, +html { + height: 100%; + touch-action: none; /* Disable touch actions (like scrolling) */ + scroll-behavior: smooth; +} + +body { + overflow: hidden; +} + +p, +span { + font-weight: 500; + font-size: 16px; + line-height: 1; + letter-spacing: 0.04em; +} + +:root { + --unit-100vh: 100vh; +} +@supports (height: 100dvh) { + :root { + --unit-100vh: 100dvh; + } +} + +.ant-typography, +h1, +h2 { + font-family: "Grold Rounded Slim"; + color: white; + text-transform: uppercase; +} + +h3 { + font-family: "SF-Pro-Rounded" !important; + font-weight: 700 !important; +} + +footer { + letter-spacing: 1.3px; + font-weight: 700; +} + +a { + color: white; +} + +a:hover { + color: white; +} + +h1 { + font-size: 50px; +} + +.tblogo { + padding-bottom: 30px; +} + +.tbview { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + padding: 5px 25px; + padding-bottom: 10px; +} + +.tbbutton { + font-weight: 600; + border-radius: 15px; + background: none; + border: none; + box-shadow: none; + color: white; + font-size: 16px; + padding: 0; +} + +.tbbutton:hover { + background: none !important; + color: white !important; + box-shadow: none; +} + +.tbnav { + font-size: 28px; + text-transform: uppercase; + background: none; + border: none; + box-shadow: none; + color: white; + letter-spacing: 2px; + line-height: 1.2; + border-radius: 25px; + padding: 6px 15px; + padding-top: 9px; + height: auto; +} + +.tbmobilenav { + font-family: "Grold Rounded Slim"; + font-size: 45px; + text-transform: uppercase; + background: none; + border: none; + box-shadow: none; + color: white; + letter-spacing: 2px; + line-height: 1.2; + border-radius: 25px; + padding: 0px 0px; + height: auto; + display: flex; + justify-content: flex-start; +} + +.tbmobilenav:hover { + color: #ffffff !important; + background: none !important; + box-shadow: none !important; +} + +.tbnav Span { + font-family: "Grold Rounded Slim"; +} + +.tbmobilenav Span { + text-align: end; + line-height: 0.95; + font-family: "Grold Rounded Slim"; +} + +.tbnav:hover { + background: rgba(255, 255, 255, 0.1) !important; + color: white !important; + box-shadow: + 6px 6px 12px #c5c5c52b, + -6px -6px 12px #ffffff30; +} + +.tbcard { + width: 70%; + height: 70%; + border-radius: 0; + border: none; + background: none; + color: white; +} + +.tbcard .ant-card-head { + padding: 0 !important; + color: white; + min-height: 38px; + border-bottom: 1px solid #ffffff; + text-transform: uppercase; + font-weight: 700; + letter-spacing: 1.3px; +} + +.tbcard .ant-card-head .ant-card-head-title { + text-align: left; +} + +.tbcard .ant-card-body { + padding: 24px 0px; + overflow-y: auto; + overflow: visible; +} + +.tbcard input { + background: none; + color: #ffffff; + border-color: #ffffff00; +} + +.tbcard input:focus { + border-color: #ffffff !important; + background: none; +} + +.tbcard input:focus-within { + border-color: #ffffff !important; + background: none !important; +} + +.tbcard input:active { + border-color: #ffffff; + background: rgba(255, 255, 255, 0.1) !important; +} + +.tbcard input:hover { + background: rgba(255, 255, 255, 0.1) !important; + color: white !important; + box-shadow: + 6px 6px 12px #c5c5c52b, + -6px -6px 12px #ffffff30; + border-color: #ffffff00; +} + +.tbcard input.ant-input-status-error { + background: none !important; + border-color: #ffffff00; +} + +.tbcard input::placeholder { + color: #ffffffb0; +} + +.tbcard .ant-card-body button { + background: none; + border-color: #ffffff00; + color: #ffffff; + box-shadow: none; +} + +.tbcard .ant-card-body button:hover { + background: rgba(255, 255, 255, 0.1) !important; + color: white !important; + box-shadow: + 6px 6px 12px #c5c5c52b, + -6px -6px 12px #ffffff30; +} + +.ant-card-actions Span { + text-transform: uppercase; + font-weight: 700; + letter-spacing: 1.3px; +} + +.tbcard .ant-card-body button:active { + background: rgba(255, 255, 255, 0.1) !important; + color: white !important; + box-shadow: + 6px 6px 12px #c5c5c52b, + -6px -6px 12px #ffffff30; +} + +.tbcard .ant-card-actions { + background: none; + min-height: 40px; + justify-content: center; + flex-direction: column; + align-items: end; +} + +.tbcard .ant-card-actions li { + width: unset !important; + margin: 0; +} + +.tbcard .ant-card-actions .anticon { + color: #ffffff !important; + font-size: 16px !important; +} + +.tbcard .ant-card-actions Button:hover { + box-shadow: none; + background: none; +} + +.tbsocial { + color: white; +} + +.tbsocial:hover { + color: white; +} + +.ant-modal-mask { + backdrop-filter: blur(3px); +} + +.tbturnstile { + width: unset !important; +} + +.tbturnstile .ant-modal-content { + background: none; + border: none; + box-shadow: none; +} + +.tbblogfilters { + border-bottom: 1px solid #f0f0f0; + padding-bottom: 5px; +} + +.tbtag { + font-family: "SF-Pro-Rounded"; + color: #ffffff; + font-size: 14px; + border-radius: 10px; +} + +.tbdisabledtag { + background: rgba(255, 255, 255, 0.1) !important; + border-color: transparent; + color: #ffffff; + border-radius: 10px; +} + +.tbtag:hover { + background: rgba(255, 255, 255, 0.1) !important; + box-shadow: 6px 6px 12px #c5c5c52b; + color: #ffffff !important; +} + +.tbtag.ant-tag-checkable-checked { + color: #ffffff !important; + background: none; + border: 1px solid #ffffff; +} + +.tbblogbox { + width: 100%; + padding: 10px 15px; + padding-bottom: 15px; + border-radius: 8px; + border: 1px solid #e8e8e8; + transition: box-shadow 0.3s; + cursor: pointer; +} + +.tbblogtitle { + line-height: 0.9; + margin: 10px 0; +} + +.tbblogcontent h1 { + line-height: 0.6; + font-size: 2.3em; + margin-bottom: 0.5em; + margin-top: 1em; +} + +.tbblogcontent p, +.tbblogcontent ul, +.tbblogcontent ol { + margin-bottom: 1em; + margin-top: 1em; +} + +.tbblogcontent ul p, +.tbblogcontent ul ul, +.tbblogcontent ul ol { + margin-bottom: 0em; + margin-top: 0em; +} + +.tbblogcontent ol p, +.tbblogcontent ol ul, +.tbblogcontent ol ol { + margin-bottom: 0em; + margin-top: 0em; +} + +.tbblogcontent ul, +.tbblogcontent ol { + padding-inline-start: 30px; +} + +.tbblogcontent h2 { + line-height: 0.6; + margin-bottom: 0.5em; + margin-top: 1em; + font-size: 1.6em; +} + +.tbblogcontent li { + font-size: 16px; + font-weight: 500; +} + +.tbblogcontent hr { + height: 1px; + border: none; + background-color: rgba(255, 255, 255, 0.25); + margin: 10px 0px; +} + +.tbblogcontent .tbcallout { + background-color: rgba(255, 255, 255, 0.1); + padding: 20px; + border-radius: 10px; + font-size: 16px; + line-height: 1.2; + letter-spacing: 0.04em; + display: flex; + overflow-wrap: anywhere; + white-space: normal; + margin-bottom: 1em; +} + +.tbblogcontent .tbcallout .tbcalloutcontent { + flex-grow: 1; +} + +.tbblogcontent .tbcallout div:first-child { + margin-top: 0px; +} + +.tbblogcontent .tbcallout div p:last-child, +.tbblogcontent .tbcallout div div:last-child, +.tbblogcontent .tbcallout div ul:last-child, +.tbblogcontent .tbcallout div ol:last-child { + margin-bottom: 0px; +} + +.tbblogcontent .tbcallout div p:first-child, +.tbblogcontent .tbcallout div h1:first-child, +.tbblogcontent .tbcallout div h2:first-child, +.tbblogcontent .tbcallout div ul:first-child, +.tbblogcontent .tbcallout div ol:first-child { + margin-top: 4px; +} + +.tbblogcontent .tbcallout .tbemoji { + font-size: 24px; +} + +.tbblogcontent .tbcallout .tbemoji, +.tbblogcontent .tbcallout .tbicon { + margin-right: 10px; +} + +.tbblogcontent .tbquote { + padding: 5px 10px; + border-left: 1px solid #ffffff; +} + +.tbblogcontent img { + max-height: 260px; + max-width: 100%; + border-radius: 10px; +} + +.tbblogcontent .tbimage { + border-radius: 10px; + margin-bottom: 0.5em; + margin-top: 0.5em; +} + +.tbblogcontent .tbimagecaption { + color: rgba(255, 255, 255, 0.5); +} + +.tbblogcontent i.tbemoji { + font-style: normal; + font-size: 20px; + line-height: 1; +} + +.tbblogcontent img.tbicon { + width: 24px; + height: 24px; + border-radius: 3px; +} + +.tbblogcontent div.tbicon { + width: 24px; + height: 24px; +} + +.tbblogcontent .tbtable { + margin: 0.5em 0; +} + +.tbblogcontent .tbtable.tbcolumnheader tr:first-child { + background-color: rgba(255, 255, 255, 0.1); + font-weight: 600; +} + +.tbblogcontent .tbtable.tbrowheader td:first-child { + background-color: rgba(255, 255, 255, 0.1); + font-weight: 600; +} + +.tbblogcontent td { + border: 1px solid #ffffff; + padding: 8px 12px; +} + +.tbblogcontent .tbcolumnlist { + display: flex; +} + +.tbblogcontent .tbcolumnlist .tbcolumn:first-child { + margin-left: 0px; +} + +.tbblogcontent .tbcolumnlist .tbcolumn { + flex: 1 1 0px; + margin-left: 15px; +} diff --git a/css/web/notion-icons.css b/css/web/notion-icons.css new file mode 100644 index 0000000..e69de29 diff --git a/favicon/favicon-auth.ico b/favicon/favicon-auth.ico new file mode 100644 index 0000000..f243318 Binary files /dev/null and b/favicon/favicon-auth.ico differ diff --git a/favicon/favicon-auth1080.png b/favicon/favicon-auth1080.png new file mode 100644 index 0000000..0ec9da5 Binary files /dev/null and b/favicon/favicon-auth1080.png differ diff --git a/favicon/favicon-auth192.png b/favicon/favicon-auth192.png new file mode 100644 index 0000000..c38a1ea Binary files /dev/null and b/favicon/favicon-auth192.png differ diff --git a/favicon/favicon-auth512.png b/favicon/favicon-auth512.png new file mode 100644 index 0000000..8104241 Binary files /dev/null and b/favicon/favicon-auth512.png differ diff --git a/favicon/favicon.ico b/favicon/favicon.ico new file mode 100644 index 0000000..9ece63b Binary files /dev/null and b/favicon/favicon.ico differ diff --git a/favicon/favicon1080.png b/favicon/favicon1080.png new file mode 100644 index 0000000..8dccc6e Binary files /dev/null and b/favicon/favicon1080.png differ diff --git a/favicon/favicon192.png b/favicon/favicon192.png new file mode 100644 index 0000000..40c5532 Binary files /dev/null and b/favicon/favicon192.png differ diff --git a/favicon/favicon512.png b/favicon/favicon512.png new file mode 100644 index 0000000..937435a Binary files /dev/null and b/favicon/favicon512.png differ diff --git a/fonts/Grold-Rounded-Slim-Bold-Subset.otf b/fonts/Grold-Rounded-Slim-Bold-Subset.otf new file mode 100644 index 0000000..fb5c9c9 Binary files /dev/null and b/fonts/Grold-Rounded-Slim-Bold-Subset.otf differ diff --git a/fonts/Grold-Rounded-Slim-Bold-Subset.woff b/fonts/Grold-Rounded-Slim-Bold-Subset.woff new file mode 100644 index 0000000..00df33e Binary files /dev/null and b/fonts/Grold-Rounded-Slim-Bold-Subset.woff differ diff --git a/fonts/Grold-Rounded-Slim-Bold-Subset.woff2 b/fonts/Grold-Rounded-Slim-Bold-Subset.woff2 new file mode 100644 index 0000000..6944a90 Binary files /dev/null and b/fonts/Grold-Rounded-Slim-Bold-Subset.woff2 differ diff --git a/fonts/Grold-Rounded-Slim-Bold.otf b/fonts/Grold-Rounded-Slim-Bold.otf new file mode 100644 index 0000000..e10fa45 Binary files /dev/null and b/fonts/Grold-Rounded-Slim-Bold.otf differ diff --git a/fonts/Grold-Rounded-Slim-Bold.woff b/fonts/Grold-Rounded-Slim-Bold.woff new file mode 100644 index 0000000..91ec7df Binary files /dev/null and b/fonts/Grold-Rounded-Slim-Bold.woff differ diff --git a/fonts/Grold-Rounded-Slim-Bold.woff2 b/fonts/Grold-Rounded-Slim-Bold.woff2 new file mode 100644 index 0000000..358c4fc Binary files /dev/null and b/fonts/Grold-Rounded-Slim-Bold.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Black-Subset.otf b/fonts/SF-Compact-Rounded-Black-Subset.otf new file mode 100644 index 0000000..e05c638 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Black-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Black-Subset.woff b/fonts/SF-Compact-Rounded-Black-Subset.woff new file mode 100644 index 0000000..933a742 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Black-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Black-Subset.woff2 b/fonts/SF-Compact-Rounded-Black-Subset.woff2 new file mode 100644 index 0000000..2a4fd6c Binary files /dev/null and b/fonts/SF-Compact-Rounded-Black-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Bold-Subset.otf b/fonts/SF-Compact-Rounded-Bold-Subset.otf new file mode 100644 index 0000000..a813f64 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Bold-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Bold-Subset.woff b/fonts/SF-Compact-Rounded-Bold-Subset.woff new file mode 100644 index 0000000..306afd2 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Bold-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Bold-Subset.woff2 b/fonts/SF-Compact-Rounded-Bold-Subset.woff2 new file mode 100644 index 0000000..9a7f0c2 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Bold-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Heavy-Subset.otf b/fonts/SF-Compact-Rounded-Heavy-Subset.otf new file mode 100644 index 0000000..8f1c827 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Heavy-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Heavy-Subset.woff b/fonts/SF-Compact-Rounded-Heavy-Subset.woff new file mode 100644 index 0000000..062159b Binary files /dev/null and b/fonts/SF-Compact-Rounded-Heavy-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Heavy-Subset.woff2 b/fonts/SF-Compact-Rounded-Heavy-Subset.woff2 new file mode 100644 index 0000000..1abb81a Binary files /dev/null and b/fonts/SF-Compact-Rounded-Heavy-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Light-Subset.otf b/fonts/SF-Compact-Rounded-Light-Subset.otf new file mode 100644 index 0000000..b975d10 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Light-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Light-Subset.woff b/fonts/SF-Compact-Rounded-Light-Subset.woff new file mode 100644 index 0000000..5632b72 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Light-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Light-Subset.woff2 b/fonts/SF-Compact-Rounded-Light-Subset.woff2 new file mode 100644 index 0000000..b0a6410 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Light-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Medium-Subset.otf b/fonts/SF-Compact-Rounded-Medium-Subset.otf new file mode 100644 index 0000000..37648df Binary files /dev/null and b/fonts/SF-Compact-Rounded-Medium-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Medium-Subset.woff b/fonts/SF-Compact-Rounded-Medium-Subset.woff new file mode 100644 index 0000000..56a7c3d Binary files /dev/null and b/fonts/SF-Compact-Rounded-Medium-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Medium-Subset.woff2 b/fonts/SF-Compact-Rounded-Medium-Subset.woff2 new file mode 100644 index 0000000..28137de Binary files /dev/null and b/fonts/SF-Compact-Rounded-Medium-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Regular-Subset.otf b/fonts/SF-Compact-Rounded-Regular-Subset.otf new file mode 100644 index 0000000..a6b5a43 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Regular-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Regular-Subset.woff b/fonts/SF-Compact-Rounded-Regular-Subset.woff new file mode 100644 index 0000000..84b3816 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Regular-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Regular-Subset.woff2 b/fonts/SF-Compact-Rounded-Regular-Subset.woff2 new file mode 100644 index 0000000..e1f9842 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Regular-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Semibold-Subset.otf b/fonts/SF-Compact-Rounded-Semibold-Subset.otf new file mode 100644 index 0000000..71e519b Binary files /dev/null and b/fonts/SF-Compact-Rounded-Semibold-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Semibold-Subset.woff b/fonts/SF-Compact-Rounded-Semibold-Subset.woff new file mode 100644 index 0000000..e125e8f Binary files /dev/null and b/fonts/SF-Compact-Rounded-Semibold-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Semibold-Subset.woff2 b/fonts/SF-Compact-Rounded-Semibold-Subset.woff2 new file mode 100644 index 0000000..e690a8a Binary files /dev/null and b/fonts/SF-Compact-Rounded-Semibold-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Thin-Subset.otf b/fonts/SF-Compact-Rounded-Thin-Subset.otf new file mode 100644 index 0000000..1c294d4 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Thin-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Thin-Subset.woff b/fonts/SF-Compact-Rounded-Thin-Subset.woff new file mode 100644 index 0000000..c74f95a Binary files /dev/null and b/fonts/SF-Compact-Rounded-Thin-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Thin-Subset.woff2 b/fonts/SF-Compact-Rounded-Thin-Subset.woff2 new file mode 100644 index 0000000..8625751 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Thin-Subset.woff2 differ diff --git a/fonts/SF-Compact-Rounded-Ultralight-Subset.otf b/fonts/SF-Compact-Rounded-Ultralight-Subset.otf new file mode 100644 index 0000000..a4ec700 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Ultralight-Subset.otf differ diff --git a/fonts/SF-Compact-Rounded-Ultralight-Subset.woff b/fonts/SF-Compact-Rounded-Ultralight-Subset.woff new file mode 100644 index 0000000..f08cd7c Binary files /dev/null and b/fonts/SF-Compact-Rounded-Ultralight-Subset.woff differ diff --git a/fonts/SF-Compact-Rounded-Ultralight-Subset.woff2 b/fonts/SF-Compact-Rounded-Ultralight-Subset.woff2 new file mode 100644 index 0000000..a6a08e5 Binary files /dev/null and b/fonts/SF-Compact-Rounded-Ultralight-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Black-Subset.otf b/fonts/SF-Pro-Rounded-Black-Subset.otf new file mode 100644 index 0000000..d23f12a Binary files /dev/null and b/fonts/SF-Pro-Rounded-Black-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Black-Subset.woff b/fonts/SF-Pro-Rounded-Black-Subset.woff new file mode 100644 index 0000000..c5285ca Binary files /dev/null and b/fonts/SF-Pro-Rounded-Black-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Black-Subset.woff2 b/fonts/SF-Pro-Rounded-Black-Subset.woff2 new file mode 100644 index 0000000..ca3d242 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Black-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Bold-Subset.otf b/fonts/SF-Pro-Rounded-Bold-Subset.otf new file mode 100644 index 0000000..3a53da5 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Bold-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Bold-Subset.woff b/fonts/SF-Pro-Rounded-Bold-Subset.woff new file mode 100644 index 0000000..03a1fa1 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Bold-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Bold-Subset.woff2 b/fonts/SF-Pro-Rounded-Bold-Subset.woff2 new file mode 100644 index 0000000..63f5555 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Bold-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Heavy-Subset.otf b/fonts/SF-Pro-Rounded-Heavy-Subset.otf new file mode 100644 index 0000000..d0b79f7 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Heavy-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Heavy-Subset.woff b/fonts/SF-Pro-Rounded-Heavy-Subset.woff new file mode 100644 index 0000000..d5a5fd3 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Heavy-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Heavy-Subset.woff2 b/fonts/SF-Pro-Rounded-Heavy-Subset.woff2 new file mode 100644 index 0000000..87c63f7 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Heavy-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Light-Subset.otf b/fonts/SF-Pro-Rounded-Light-Subset.otf new file mode 100644 index 0000000..72412bb Binary files /dev/null and b/fonts/SF-Pro-Rounded-Light-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Light-Subset.woff b/fonts/SF-Pro-Rounded-Light-Subset.woff new file mode 100644 index 0000000..24abd3e Binary files /dev/null and b/fonts/SF-Pro-Rounded-Light-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Light-Subset.woff2 b/fonts/SF-Pro-Rounded-Light-Subset.woff2 new file mode 100644 index 0000000..ebcc7ea Binary files /dev/null and b/fonts/SF-Pro-Rounded-Light-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Medium-Subset.otf b/fonts/SF-Pro-Rounded-Medium-Subset.otf new file mode 100644 index 0000000..8a3b147 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Medium-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Medium-Subset.woff b/fonts/SF-Pro-Rounded-Medium-Subset.woff new file mode 100644 index 0000000..2218136 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Medium-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Medium-Subset.woff2 b/fonts/SF-Pro-Rounded-Medium-Subset.woff2 new file mode 100644 index 0000000..8bc37d8 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Medium-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Regular-Subset.otf b/fonts/SF-Pro-Rounded-Regular-Subset.otf new file mode 100644 index 0000000..b91a017 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Regular-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Regular-Subset.woff b/fonts/SF-Pro-Rounded-Regular-Subset.woff new file mode 100644 index 0000000..20c5902 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Regular-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Regular-Subset.woff2 b/fonts/SF-Pro-Rounded-Regular-Subset.woff2 new file mode 100644 index 0000000..6fadccf Binary files /dev/null and b/fonts/SF-Pro-Rounded-Regular-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Semibold-Subset.otf b/fonts/SF-Pro-Rounded-Semibold-Subset.otf new file mode 100644 index 0000000..bf9b0d6 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Semibold-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Semibold-Subset.woff b/fonts/SF-Pro-Rounded-Semibold-Subset.woff new file mode 100644 index 0000000..159cb36 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Semibold-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Semibold-Subset.woff2 b/fonts/SF-Pro-Rounded-Semibold-Subset.woff2 new file mode 100644 index 0000000..570c234 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Semibold-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Thin-Subset.otf b/fonts/SF-Pro-Rounded-Thin-Subset.otf new file mode 100644 index 0000000..22244cd Binary files /dev/null and b/fonts/SF-Pro-Rounded-Thin-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Thin-Subset.woff b/fonts/SF-Pro-Rounded-Thin-Subset.woff new file mode 100644 index 0000000..36e3981 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Thin-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Thin-Subset.woff2 b/fonts/SF-Pro-Rounded-Thin-Subset.woff2 new file mode 100644 index 0000000..9c4887a Binary files /dev/null and b/fonts/SF-Pro-Rounded-Thin-Subset.woff2 differ diff --git a/fonts/SF-Pro-Rounded-Ultralight-Subset.otf b/fonts/SF-Pro-Rounded-Ultralight-Subset.otf new file mode 100644 index 0000000..04e66de Binary files /dev/null and b/fonts/SF-Pro-Rounded-Ultralight-Subset.otf differ diff --git a/fonts/SF-Pro-Rounded-Ultralight-Subset.woff b/fonts/SF-Pro-Rounded-Ultralight-Subset.woff new file mode 100644 index 0000000..235d42f Binary files /dev/null and b/fonts/SF-Pro-Rounded-Ultralight-Subset.woff differ diff --git a/fonts/SF-Pro-Rounded-Ultralight-Subset.woff2 b/fonts/SF-Pro-Rounded-Ultralight-Subset.woff2 new file mode 100644 index 0000000..8522548 Binary files /dev/null and b/fonts/SF-Pro-Rounded-Ultralight-Subset.woff2 differ diff --git a/icons/auth/b-xmark.svg b/icons/auth/b-xmark.svg new file mode 100644 index 0000000..7b31082 --- /dev/null +++ b/icons/auth/b-xmark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/icons/auth/c-at.svg b/icons/auth/c-at.svg new file mode 100644 index 0000000..8a5d8f2 --- /dev/null +++ b/icons/auth/c-at.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/icons/auth/c-check-128.svg b/icons/auth/c-check-128.svg new file mode 100644 index 0000000..67fa079 --- /dev/null +++ b/icons/auth/c-check-128.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-default-v2.svg b/icons/auth/c-default-v2.svg new file mode 100644 index 0000000..a67f095 --- /dev/null +++ b/icons/auth/c-default-v2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-download-128.svg b/icons/auth/c-download-128.svg new file mode 100644 index 0000000..affcd76 --- /dev/null +++ b/icons/auth/c-download-128.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-download.svg b/icons/auth/c-download.svg new file mode 100644 index 0000000..93b970b --- /dev/null +++ b/icons/auth/c-download.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-hash.svg b/icons/auth/c-hash.svg new file mode 100644 index 0000000..51554d8 --- /dev/null +++ b/icons/auth/c-hash.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/auth/c-key.svg b/icons/auth/c-key.svg new file mode 100644 index 0000000..47414a9 --- /dev/null +++ b/icons/auth/c-key.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/auth/c-lock.svg b/icons/auth/c-lock.svg new file mode 100644 index 0000000..7e54fd3 --- /dev/null +++ b/icons/auth/c-lock.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/icons/auth/c-passkey-v2.svg b/icons/auth/c-passkey-v2.svg new file mode 100644 index 0000000..4eba3ee --- /dev/null +++ b/icons/auth/c-passkey-v2.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/icons/auth/c-passkey.svg b/icons/auth/c-passkey.svg new file mode 100644 index 0000000..b05c926 --- /dev/null +++ b/icons/auth/c-passkey.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/icons/auth/c-pencil-v2.svg b/icons/auth/c-pencil-v2.svg new file mode 100644 index 0000000..06bc149 --- /dev/null +++ b/icons/auth/c-pencil-v2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-pencil.svg b/icons/auth/c-pencil.svg new file mode 100644 index 0000000..e8a2511 --- /dev/null +++ b/icons/auth/c-pencil.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-person.svg b/icons/auth/c-person.svg new file mode 100644 index 0000000..b2ceee2 --- /dev/null +++ b/icons/auth/c-person.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/icons/auth/c-phone-v2.svg b/icons/auth/c-phone-v2.svg new file mode 100644 index 0000000..3bea0a1 --- /dev/null +++ b/icons/auth/c-phone-v2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-phone.svg b/icons/auth/c-phone.svg new file mode 100644 index 0000000..2bf9141 --- /dev/null +++ b/icons/auth/c-phone.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-power.svg b/icons/auth/c-power.svg new file mode 100644 index 0000000..d72dc55 --- /dev/null +++ b/icons/auth/c-power.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/icons/auth/c-qrcode-128.svg b/icons/auth/c-qrcode-128.svg new file mode 100644 index 0000000..b817df7 --- /dev/null +++ b/icons/auth/c-qrcode-128.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/icons/auth/c-settings.svg b/icons/auth/c-settings.svg new file mode 100644 index 0000000..7690c53 --- /dev/null +++ b/icons/auth/c-settings.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/icons/auth/w-authtombutcherwork.svg b/icons/auth/w-authtombutcherwork.svg new file mode 100644 index 0000000..bcbb486 --- /dev/null +++ b/icons/auth/w-authtombutcherwork.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/icons/auth/w-bin.svg b/icons/auth/w-bin.svg new file mode 100644 index 0000000..75e5935 --- /dev/null +++ b/icons/auth/w-bin.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/icons/auth/w-checkmark.svg b/icons/auth/w-checkmark.svg new file mode 100644 index 0000000..2aa8f8c --- /dev/null +++ b/icons/auth/w-checkmark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/icons/auth/w-door.svg b/icons/auth/w-door.svg new file mode 100644 index 0000000..43a9ecf --- /dev/null +++ b/icons/auth/w-door.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/icons/auth/w-login.svg b/icons/auth/w-login.svg new file mode 100644 index 0000000..0317ddc --- /dev/null +++ b/icons/auth/w-login.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/icons/auth/w-passkey.svg b/icons/auth/w-passkey.svg new file mode 100644 index 0000000..132e830 --- /dev/null +++ b/icons/auth/w-passkey.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/icons/auth/w-power.svg b/icons/auth/w-power.svg new file mode 100644 index 0000000..6d84e58 --- /dev/null +++ b/icons/auth/w-power.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/icons/auth/w-reload.svg b/icons/auth/w-reload.svg new file mode 100644 index 0000000..0592ab6 --- /dev/null +++ b/icons/auth/w-reload.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/icons/auth/w-right.svg b/icons/auth/w-right.svg new file mode 100644 index 0000000..2d69159 --- /dev/null +++ b/icons/auth/w-right.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/icons/auth/w-xmark.svg b/icons/auth/w-xmark.svg new file mode 100644 index 0000000..2eaac7b --- /dev/null +++ b/icons/auth/w-xmark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/icons/git/auth-logo.png b/icons/git/auth-logo.png new file mode 100644 index 0000000..c85754f Binary files /dev/null and b/icons/git/auth-logo.png differ diff --git a/icons/web/w-auth.svg b/icons/web/w-auth.svg new file mode 100644 index 0000000..77c5840 --- /dev/null +++ b/icons/web/w-auth.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/icons/web/w-back.svg b/icons/web/w-back.svg new file mode 100644 index 0000000..070355b --- /dev/null +++ b/icons/web/w-back.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/icons/web/w-link.svg b/icons/web/w-link.svg new file mode 100644 index 0000000..17a8635 --- /dev/null +++ b/icons/web/w-link.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/logos/actual-logo.png b/logos/actual-logo.png new file mode 100644 index 0000000..84d991f Binary files /dev/null and b/logos/actual-logo.png differ diff --git a/logos/gitea-logo.png b/logos/gitea-logo.png new file mode 100644 index 0000000..0c35c5e Binary files /dev/null and b/logos/gitea-logo.png differ diff --git a/logos/grafana-logo.png b/logos/grafana-logo.png new file mode 100644 index 0000000..5b0caea Binary files /dev/null and b/logos/grafana-logo.png differ diff --git a/logos/greeneking-logo.svg b/logos/greeneking-logo.svg new file mode 100644 index 0000000..557bd1c --- /dev/null +++ b/logos/greeneking-logo.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logos/homeassistant-logo.png b/logos/homeassistant-logo.png new file mode 100644 index 0000000..9ebf853 Binary files /dev/null and b/logos/homeassistant-logo.png differ diff --git a/logos/istore-logo.svg b/logos/istore-logo.svg new file mode 100644 index 0000000..b2eef17 --- /dev/null +++ b/logos/istore-logo.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logos/jellyfin-logo.png b/logos/jellyfin-logo.png new file mode 100644 index 0000000..83e9f8f Binary files /dev/null and b/logos/jellyfin-logo.png differ diff --git a/logos/klipper-logo.png b/logos/klipper-logo.png new file mode 100644 index 0000000..77325ae Binary files /dev/null and b/logos/klipper-logo.png differ diff --git a/logos/logo-auth.png b/logos/logo-auth.png new file mode 100644 index 0000000..51d11df Binary files /dev/null and b/logos/logo-auth.png differ diff --git a/logos/logo-horizontal.svg b/logos/logo-horizontal.svg new file mode 100644 index 0000000..d7cc990 --- /dev/null +++ b/logos/logo-horizontal.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/logos/logo-vertical.svg b/logos/logo-vertical.svg new file mode 100644 index 0000000..30065e1 --- /dev/null +++ b/logos/logo-vertical.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logos/nucleus-logo.svg b/logos/nucleus-logo.svg new file mode 100644 index 0000000..a5d47c4 --- /dev/null +++ b/logos/nucleus-logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/logos/revolution-logo.svg b/logos/revolution-logo.svg new file mode 100644 index 0000000..75de850 --- /dev/null +++ b/logos/revolution-logo.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logos/thelondonoffice-logo.svg b/logos/thelondonoffice-logo.svg new file mode 100644 index 0000000..e51bd65 --- /dev/null +++ b/logos/thelondonoffice-logo.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/subset-fonts.py b/tools/subset-fonts.py new file mode 100644 index 0000000..0cc2b34 --- /dev/null +++ b/tools/subset-fonts.py @@ -0,0 +1,31 @@ +import os +import subprocess + +# Define the Unicode range for Extended Latin +UNICODE_RANGE = "U+0020-024F" + +# Get all .otf files in the current directory +otf_files = [f for f in os.listdir() if f.endswith(".otf")] + +if not otf_files: + print("No .otf files found in the current directory.") + exit() + +# Process each .otf file +for otf_file in otf_files: + output_file = otf_file.replace(".otf", "-Subset.otf") + command = [ + "pyftsubset", + otf_file, + f"--unicodes={UNICODE_RANGE}", + f"--output-file={output_file}" + ] + + print(f"Subsetting {otf_file}...") + try: + subprocess.run(command, check=True) + print(f"✅ Successfully created {output_file}") + except subprocess.CalledProcessError: + print(f"❌ Failed to process {otf_file}") + +print("✅ All files processed!")