From 801e08e73624005ed498101ad616d987f70f8cdf Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 12 Jul 2026 17:04:26 +0200 Subject: Add original style sources and an SCSS compiler --- assets/_sass/base/_animations.scss | 46 +++++++ assets/_sass/base/_helpers.scss | 10 ++ assets/_sass/base/_mixins.scss | 95 ++++++++++++++ assets/_sass/base/_reset.scss | 35 +++++ assets/_sass/base/_syntax.scss | 260 +++++++++++++++++++++++++++++++++++++ assets/_sass/base/_vars.scss | 41 ++++++ 6 files changed, 487 insertions(+) create mode 100644 assets/_sass/base/_animations.scss create mode 100644 assets/_sass/base/_helpers.scss create mode 100644 assets/_sass/base/_mixins.scss create mode 100644 assets/_sass/base/_reset.scss create mode 100644 assets/_sass/base/_syntax.scss create mode 100644 assets/_sass/base/_vars.scss (limited to 'assets/_sass/base') diff --git a/assets/_sass/base/_animations.scss b/assets/_sass/base/_animations.scss new file mode 100644 index 0000000..2885970 --- /dev/null +++ b/assets/_sass/base/_animations.scss @@ -0,0 +1,46 @@ +@keyframes headerShine { + 100% { + left: 150%; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@keyframes zoomIn { + from { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + to { + opacity: 1; + } +} + +@keyframes zoomOut { + from { + opacity: 1; + } + 50% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + to { + opacity: 0; + } +} diff --git a/assets/_sass/base/_helpers.scss b/assets/_sass/base/_helpers.scss new file mode 100644 index 0000000..d461516 --- /dev/null +++ b/assets/_sass/base/_helpers.scss @@ -0,0 +1,10 @@ +.hidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} diff --git a/assets/_sass/base/_mixins.scss b/assets/_sass/base/_mixins.scss new file mode 100644 index 0000000..7541d12 --- /dev/null +++ b/assets/_sass/base/_mixins.scss @@ -0,0 +1,95 @@ +@mixin transition($transitions...) { + transition: $transitions; + -moz-transition: $transitions; + -webkit-transition: $transitions; + -o-transition: $transitions; +} + +@mixin no-select { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +@mixin placeholder { + &.placeholder { @content } + &:-ms-input-placeholder { @content } + &:-moz-placeholder { @content } + &::-moz-placeholder { @content } + &::-webkit-input-placeholder { @content } +} + +@mixin translate($val1, $val2) { + -webkit-transform: translate(#{$val1}, #{$val2}); + -moz-transform: translate(#{$val1}, #{$val2}); + -ms-transform: translate(#{$val1}, #{$val2}); + -o-transform: translate(#{$val1}, #{$val2}); + transform: translate(#{$val1}, #{$val2}); +} + +@mixin skew($x, $y) { + -webkit-transform: skew(#{$x}, #{$y}); + -moz-transform: skew(#{$x}, #{$y}); + -ms-transform: skew(#{$x}, #{$y}); + -o-transform: skew(#{$x}, #{$y}); + transform: skew(#{$x}, #{$y}); +} + +@mixin scale($val) { + -webkit-transform: scale(#{$val}); + -moz-transform: scale(#{$val}); + -ms-transform: scale(#{$val}); + -o-transform: scale(#{$val}); + transform: scale(#{$val}); +} + +@mixin rotate($deg) { + -webkit-transform: rotate(#{$deg}); + -moz-transform: rotate(#{$deg}); + -ms-transform: rotate(#{$deg}); + -o-transform: rotate(#{$deg}); + transform: rotate(#{$deg}); +} + +@mixin flexbox() { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} + +@mixin inline-flex() { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -moz-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; +} + +@mixin flex($grow: 1, $shrink: 1, $basis: auto) { + -webkit-flex: $grow $shrink $basis; + -moz-flex: $grow $shrink $basis; + -ms-flex: $grow $shrink $basis; + flex: $grow $shrink $basis; +} + +@mixin flex-flow($values: (row wrap)) { + -webkit-flex-flow: $values; + -moz-flex-flow: $values; + -ms-flex-flow: $values; + flex-flow: $values; +} + +@mixin justify-content($pos: center) { + -webkit-justify-content: $pos; + justify-content: $pos; +} + +@mixin align-items($align: center) { + -webkit-align-items: $align; + align-items: $align; +} diff --git a/assets/_sass/base/_reset.scss b/assets/_sass/base/_reset.scss new file mode 100644 index 0000000..f896901 --- /dev/null +++ b/assets/_sass/base/_reset.scss @@ -0,0 +1,35 @@ +* { + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +body { + margin: 0; + padding: 0; + font-family: 'PT Serif', serif; + font-size: 18px; + line-height: 30px; + color: var(--grey-555); + background: var(--body-bg); +} + +header, +nav, +section, +main, +article, +aside, +figure, +footer, +iframe, +object, +svg { + display: block; + margin: 0; +} + +@media screen and (max-width: 800px) { + body { + padding: 80px 0 0; + } +} diff --git a/assets/_sass/base/_syntax.scss b/assets/_sass/base/_syntax.scss new file mode 100644 index 0000000..8951f90 --- /dev/null +++ b/assets/_sass/base/_syntax.scss @@ -0,0 +1,260 @@ +.highlight { + background: var(--grey-fa); + border: 1px solid var(--grey-ccc); + padding: 30px; + + .lineno { + padding: 0 15px 0 0; + } + // Comment + .c { + color: #998; + font-style: italic + } + // Error + .err { + color: #a61717; + background-color: #e3d2d2 + } + // Keyword + .k { + font-weight: bold + } + // Operator + .o { + font-weight: bold + } + // Comment.Multiline + .cm { + color: #998; + font-style: italic + } + // Comment.Preproc + .cp { + color: #999; + font-weight: bold + } + // Comment.Single + .c1 { + color: #998; + font-style: italic + } + // Comment.Special + .cs { + color: #999; + font-weight: bold; + font-style: italic + } + // Generic.Deleted + .gd { + color: #000; + background-color: #fdd + } + // Generic.Deleted.Specific + .gd .x { + color: #000; + background-color: #faa + } + // Generic.Emph + .ge { + font-style: italic + } + // Generic.Error + .gr { + color: #a00 + } + // Generic.Heading + .gh { + color: #999 + } + // Generic.Inserted + .gi { + color: #000; + background-color: #dfd + } + // Generic.Inserted.Specific + .gi .x { + color: #000; + background-color: #afa + } + // Generic.Output + .go { + color: #888 + } + // Generic.Prompt + .gp { + color: #555 + } + // Generic.Strong + .gs { + font-weight: bold + } + // Generic.Subheading + .gu { + color: #aaa + } + // Generic.Traceback + .gt { + color: #a00 + } + // Keyword.Constant + .kc { + font-weight: bold + } + // Keyword.Declaration + .kd { + font-weight: bold + } + // Keyword.Pseudo + .kp { + font-weight: bold + } + // Keyword.Reserved + .kr { + font-weight: bold + } + // Keyword.Type + .kt { + color: #458; + font-weight: bold + } + // Literal.Number + .m { + color: #099 + } + // Literal.String + .s { + color: #d14 + } + // Name.Attribute + .na { + color: #008080 + } + // Name.Builtin + .nb { + color: #0086B3 + } + // Name.Class + .nc { + color: #458; + font-weight: bold + } + // Name.Constant + .no { + color: #008080 + } + // Name.Entity + .ni { + color: #800080 + } + // Name.Exception + .ne { + color: #900; + font-weight: bold + } + // Name.Function + .nf { + color: #900; + font-weight: bold + } + // Name.Namespace + .nn { + color: #555 + } + // Name.Tag + .nt { + color: #000080 + } + // Name.Variable + .nv { + color: #008080 + } + // Operator.Word + .ow { + font-weight: bold + } + // Text.Whitespace + .w { + color: #bbb + } + // Literal.Number.Float + .mf { + color: #099 + } + // Literal.Number.Hex + .mh { + color: #099 + } + // Literal.Number.Integer + .mi { + color: #099 + } + // Literal.Number.Oct + .mo { + color: #099 + } + // Literal.String.Backtick + .sb { + color: #d14 + } + // Literal.String.Char + .sc { + color: #d14 + } + // Literal.String.Doc + .sd { + color: #d14 + } + // Literal.String.Double + .s2 { + color: #d14 + } + // Literal.String.Escape + .se { + color: #d14 + } + // Literal.String.Heredoc + .sh { + color: #d14 + } + // Literal.String.Interpol + .si { + color: #d14 + } + // Literal.String.Other + .sx { + color: #d14 + } + // Literal.String.Regex + .sr { + color: #009926 + } + // Literal.String.Single + .s1 { + color: #d14 + } + // Literal.String.Symbol + .ss { + color: #990073 + } + // Name.Builtin.Pseudo + .bp { + color: #999 + } + // Name.Variable.Class + .vc { + color: #008080 + } + // Name.Variable.Global + .vg { + color: #008080 + } + // Name.Variable.Instance + .vi { + color: #008080 + } + // Literal.Number.Integer.Long + .il { + color: #099 + } +} diff --git a/assets/_sass/base/_vars.scss b/assets/_sass/base/_vars.scss new file mode 100644 index 0000000..25435ff --- /dev/null +++ b/assets/_sass/base/_vars.scss @@ -0,0 +1,41 @@ +:root, [data-theme="light"] { + --body-bg: #fafafa; + + --main-color: #639f93; + --main-color-hover: #5b9287; + + --form-success-bg: #d0f1cc; + --form-success-text: #597755; + --form-error-bg: #f1cccc; + --form-error-text: #775555; + + --grey-222: #222; + --grey-555: #555; + --grey-aaa: #aaa; + --grey-ccc: #ccc; + --grey-ddd: #ddd; + --grey-eee: #eee; + --grey-fc: #fcfcfc; + --grey-fa: #fafafa; +} + +[data-theme="dark"] { + --body-bg: #050505; + + --main-color: #639f93; + --main-color-hover: #5b9287; + + --form-success-bg: #d0f1cc; + --form-success-text: #597755; + --form-error-bg: #f1cccc; + --form-error-text: #775555; + + --grey-222: #ddd; + --grey-555: #ddd; + --grey-aaa: #777; + --grey-ccc: #666; + --grey-ddd: #666; + --grey-eee: #222; + --grey-fc: #fcfcfc; + --grey-fa: #151515; +} -- cgit v1.2.3