compilation du nouveau css

This commit is contained in:
Stanislas Jouffroy 2025-03-22 14:54:09 +01:00
parent 063f84f1ad
commit 75a822112f
20 changed files with 2804 additions and 0 deletions

4
.gitignore vendored
View file

@ -4,3 +4,7 @@ resources/
# Jetbrains # Jetbrains
.idea/ .idea/
# node modules
**/node_modules/

2
css-dist/theme.min.css vendored Normal file

File diff suppressed because one or more lines are too long

346
src/scss/_component.scss Normal file
View file

@ -0,0 +1,346 @@
// Built-In Modules
@use 'sass:map';
// Custom Modules
@use '../../node_modules/flexbox-grid-mixins/dart-sass/flexbox-grid-mixins';
// Included Modules
@use 'variable';
@use 'foundation/stack';
main * {
@extend %first-stack;
}
main {
* {
+ h1, + h2, + h3, + h4, + h5, + h6,
+ p,
+ hr,
+ table,
+ ul,
+ ol,
+ dl,
+ blockquote,
+ pre,
+ figure {
@extend %stack;
}
}
li > ul,
li > ol {
@extend %unset-stack;
}
}
figure > figcaption {
@extend %none-stack;
}
.table_of_contents,
.edit-meta,
.edit-page,
.pagination,
.highlight,
.powered,
.panel,
.button,
.gist,
.twitter-tweet {
@extend %stack;
}
.pagination {
@include flexbox-grid-mixins.grid($flex-wrap: nowrap, $justify-content: space-between);
font-weight: bold;
> * {
@extend %none-stack;
}
}
.nav-prev {}
.nav-next {
margin-left: auto;
}
@media screen and (max-width: #{map.get(variable.$default-breakpoints, xs )} ) {
.pagination {
@include flexbox-grid-mixins.grid($flex-flow: column nowrap, $justify-content: null, $align-items: center);
}
.nav-next {
margin-left: 0;
}
}
.panel {
--panel-font-color: #000;
--panel-background-color: unset;
--panel-border-color: transparent;
padding: variable.$default-layout-padding;
color: var(--panel-font-color, #000);
background: var(--panel-background-color, unset);
border: 1px solid;
border-color: var(--panel-border-color, transparent);
a {
text-decoration: underline;
font-weight: bold;
}
}
.panel-primary {
--panel-border-color: #{variable.$default-border-color};
}
.panel-notice {
--panel-font-color: #fff;
--panel-background-color: #b0b0b0;
--custom-link-text-color: #fff;
--custom-link-text-hover-color: #fff;
}
.panel-recipe {
--panel-font-color: #000;
--panel-background-color: #b0b0b0;
--custom-link-text-color: #2e7eb3;
--custom-link-text-hover-color: #2e7eb3;
}
.panel-success {
--panel-font-color: #fff;
--panel-background-color: #609f43;
--custom-link-text-color: #fff;
--custom-link-text-hover-color: #fff;
}
.panel-caution {
--panel-font-color: #fff;
--panel-background-color: #de776d;
--custom-link-text-color: #fff;
--custom-link-text-hover-color: #fff;
}
.panel-warning {
--panel-font-color: #fff;
--panel-background-color: #e67e22;
--custom-link-text-color: #fff;
--custom-link-text-hover-color: #fff;
}
.panel-danger {
--panel-font-color: #fff;
--panel-background-color: #ce3426;
--custom-link-text-color: #fff;
--custom-link-text-hover-color: #fff;
}
.panel-header {}
.panel-body {}
.button {
display: inline-block;
font-size: 120%;
padding: .5rem 1.2rem;
font-weight: bold;
text-decoration: none;
border-radius: .8rem;
--button-font-color: #000;
--button-font-hover-color: #000;
--button-background-color: #{variable.$default-background-color};
--button-background-hover-color: #f7f7f7;
--button-border-color: #{variable.$default-border-color};
color: var(--button-font-color, #000);
background: var(--button-background-color, unset);
border: 2px solid ;
border-color: var(--button-border-color, transparent);
&:hover {
color: var(--button-font-hover-color, #000);
text-decoration: none;
background: var(--button-background-hover-color, unset);
}
}
.button-notice {
--button-font-color: #fff;
--button-font-hover-color: #fff;
--button-background-color: #4ba0e1;
--button-background-hover-color: #3b89c5;
--button-border-color: transparent;
}
.button-success {
--button-font-color: #fff;
--button-font-hover-color: #fff;
--button-background-color: #369b08;
--button-background-hover-color: #256905;
--button-border-color: transparent;
}
.button-caution {
--button-font-color: #fff;
--button-font-hover-color: #fff;
--button-background-color: #f56558;
--button-background-hover-color: #d45145;
--button-border-color: transparent;
}
.button-warning {
--button-font-color: #fff;
--button-font-hover-color: #fff;
--button-background-color: #f5811b;
--button-background-hover-color: #db7012;
--button-border-color: transparent;
}
.button-danger {
--button-font-color: #fff;
--button-font-hover-color: #fff;
--button-background-color: #ce3426;
--button-background-hover-color: #a0281d;
--button-border-color: transparent;
}
.notification {
padding: .2rem variable.$default-layout-padding;
text-align: center;
background: variable.$sidebar-active-color;
}
.backtothetop {
display: none;
font-size: 200%;
}
.fa-layers .fa-circle {
color: #fff;
}
figure > figcaption h4 {
font-size: 80%;
font-weight: normal;
}
.table_of_contents {
font-size: 90%;
padding: variable.$default-layout-padding;
border: 4px solid variable.$default-border-color;
ul {
list-style: none;
padding-left: 0;
}
li {
border-top: 1px solid variable.$default-border-color;
}
> nav > ul > li:first-child {
border-top: unset;
}
ul > li li a {
margin-left: 2rem * 1;
}
ul ul > li li a {
margin-left: 2rem * 2;
}
ul ul ul > li li a {
margin-left: 2rem * 3;
}
ul ul ul ul > li li a {
margin-left: 2rem * 4;
}
ul ul ul ul ul > li li a {
margin-left: 2rem * 5;
}
}
.headerlink > .svg-inline--fa {
margin-left: .4rem;
width: .8rem;
}
.ais-SearchBox {
.ais-SearchBox-input {
width: 70%;
}
button {
margin-left: .2rem;
padding: .4rem;
}
}
.ais-Stats {
font-size: 80%;
color: #70757a;
}
.ais-Hits-item {
@extend %stack;
h3 {
font-size: 140%;
font-weight: normal;
}
p {
@extend %unset-stack;
color: #3C4043;
}
.lastmod {
font-size: 90%;
color: #70757a;
}
}
.ais-Pagination {
margin-top: 1em;
}
.ais-Pagination-list {
list-style: none;
padding-left: 0;
@include flexbox-grid-mixins.grid($flex-wrap: wrap, $justify-content: center);
}
.ais-Pagination-item {
padding: .6rem;
}
.code {
@include flexbox-grid-mixins.grid($flex-wrap: wrap);
@extend %stack;
.filename {
@include flexbox-grid-mixins.grid-col($col: 9, $flex-shrink: 0, $max-width: 75%);
font-size: 80%;
color: #666;
}
.copy-btn {
margin-left: auto;
cursor: pointer;
position: relative;
font-size: 80%;
border: solid 1px #ccc;
padding: .2rem .6rem;
border-radius: .3rem;
line-height: 1;
margin-bottom: .2rem;
outline: none;
}
.code-content {
@include flexbox-grid-mixins.grid-col($col: 12, $flex-shrink: 0, $max-width: 100%);
.highlight {
@extend %none-stack;
}
}
}
.tooltipped::after {
content: 'Copied!';
background: #555;
display: inline-block;
color: #fff;
border-radius: .4rem;
position: absolute;
left: 50%;
top: -1.8rem;
transform: translate(-50%, 0);
font-size: .75rem;
padding: 4px 10px 6px 10px;
animation: fade-tooltip .5s 1s 1 forwards;
}
@keyframes fade-tooltip {
to { opacity: 0; }
}

227
src/scss/_project.scss Normal file
View file

@ -0,0 +1,227 @@
// Built-In Modules
@use 'sass:map';
// Custom Modules
@use '../../node_modules/flexbox-grid-mixins/dart-sass/flexbox-grid-mixins';
// Included Modules
@use 'variable';
header {
color: var(--custom-font-color, #fff);
background: var(--custom-background-color, #000);
padding: .5rem variable.$default-layout-padding;
h1 {
font-size: 140%;
display: inline-block;
}
.version {
margin-left: .4rem;
font-size: 80%;
}
.github {
color: currentColor;
margin-left: .4rem;
font-size: 180%;
}
}
.description {
}
.global-menu {
color: var(--custom-font-color, #fff);
background: var(--custom-background-color, #000);
padding: .2rem variable.$default-layout-padding;
ul {
list-style: none;
padding: 0;
margin: 0;
}
li {
display: inline-block;
margin-right: 1.8rem;
position: relative;
}
ul.sub-menu {
display: none;
margin: 0;
position: absolute;
top: 1.8rem;
left: 0;
z-index: 99999;
li {
padding: .2rem variable.$default-layout-padding;
background: var(--custom-background-color, #000);
width: 140px;
font-size: 80%;
a {
color: var(--custom-font-color, #fff);
}
}
}
.fa-angle-right {
margin-left: .4rem;
font-size: 80%;
}
li.parent:hover > ul.sub-menu {
@include flexbox-grid-mixins.grid($flex-flow: column nowrap);
}
@media screen and (max-width: #{map.get(variable.$default-breakpoints, xs )} ) {
li {
display: block;
margin-right: 0;
border-bottom: 1px solid currentColor;
&:last-child {
border-bottom: none;
}
}
.fa-angle-right {
display: none;
}
ul.sub-menu {
display: block;
position: static;
li {
width: auto;
background: transparent;
padding: 0 .4rem;
+ li {
padding-top: .2rem;
}
a {
color: currentColor;
}
}
}
}
a {
display: block;
color: currentColor;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
main {
padding: 3rem;
}
@media screen and (max-width: #{map.get(variable.$default-breakpoints, xs )} ) {
main {
padding: 1rem;
}
}
.sidebar {
font-size: 90%;
line-height: 1.8;
background: variable.$sidebar-background-color;
border-right: 1px solid variable.$sidebar-active-color;
ul {
list-style: none;
padding: 0;
margin: 0;
}
a {
position: relative;
display: block;
color: #404040;
text-decoration: none;
padding: .2rem 1rem;
border-left: solid 4px variable.$sidebar-background-color;
border-bottom: solid 1px variable.$sidebar-active-color;
&:hover {
color: #404040;
background: variable.$sidebar-hover-color;
border-left: solid 4px #ccc;
}
}
nav > ul > li li a {
padding-left: 1rem + 1rem * 1;
}
nav > ul ul > li li a {
padding-left: 1rem + 1rem * 2;
}
nav > ul ul ul > li li a {
padding-left: 1rem + 1rem * 3;
}
nav > ul ul ul ul > li li a {
padding-left: 1rem + 1rem * 4;
}
nav > ul ul ul ul ul > li li a {
padding-left: 1rem + 1rem * 5;
}
@media screen and (max-width: #{map.get(variable.$default-breakpoints, xs )} ) {
nav > ul > li:first-child a {
border-top: solid 1px variable.$sidebar-active-color;
}
}
.active > a {
background: variable.$sidebar-active-color;
border-left: solid 4px #ccc;
}
.slide-menu {
.has-sub-menu:not(.parent) ul {
display: none;
}
.has-sub-menu > a span.mark {
position: absolute;
top: 0;
right: 0;
display: inline-block;
height: 32px;
width: 32px;
line-height: 2;
text-align: center;
color: #979797;
background: #f2f2f2;
border-left: 1px solid #e7e7e7;
}
}
}
.sidebar-footer {
padding: variable.$default-layout-padding;
}
footer {
}
.edit-meta {
font-size: 80%;
text-align: right;
}
.edit-page {
font-weight: bold;
}
.powered {
font-size: 80%;
text-align: right;
color: #999;
}

57
src/scss/_structure.scss Normal file
View file

@ -0,0 +1,57 @@
// Built-In Modules
@use 'sass:map';
// Custom Modules
@use '../../node_modules/flexbox-grid-mixins/dart-sass/flexbox-grid-mixins';
// Included Modules
@use 'variable';
/*-----------------------*
Structure
*-----------------------*/
html,
body {
height: 100%;
}
.container {
width: 100%;
height: 100%;
@include flexbox-grid-mixins.grid($flex-flow: column nowrap);
margin: auto;
}
.content-container {
@include flexbox-grid-mixins.grid-col($flex-grow: 1, $flex-shrink: 0, $flex-basis: auto);
@include flexbox-grid-mixins.grid($justify-content: center);
}
main {
@include flexbox-grid-mixins.grid-col($col: 9, $flex-shrink: 0, $max-width: 75%);
&:only-child {
@include flexbox-grid-mixins.grid-col($col: 12, $flex-shrink: 0, $max-width: 100%);
}
}
.sidebar {
@include flexbox-grid-mixins.grid-col($col: 3, $order: -1);
// position: fixed;
// overflow-x: hidden;
overflow-x: hidden;
overflow-y: scroll;
}
@media screen and (max-width: #{map.get(variable.$default-breakpoints, xs )} ) {
.content-container {
@include flexbox-grid-mixins.grid($flex-flow: column nowrap);
}
main {
@include flexbox-grid-mixins.grid-col($col: none, $flex-shrink: 0, $min-width: 100%);
}
.sidebar {
@include flexbox-grid-mixins.grid-col($col: none, $order: 1);
}
}

46
src/scss/_variable.scss Normal file
View file

@ -0,0 +1,46 @@
@use 'function/calc-stack';
$default-layout-width: 1024px !default;
$default-base-font-size: 18px !default;
$default-font-size: 18px !default;
$default-line-space: 6px !default;
$default-line-height: calc-stack.line-height($default-line-space, $default-font-size, $default-base-font-size) !default;
$default-stack: calc-stack.stack($default-line-height, $default-font-size, $default-base-font-size) !default;
$default-layout-margin: 0 !default;
$default-layout-padding: $default-stack !default;
$default-font-color: #000 !default;
$default-font-family: -apple-system, BlinkMacSystemFont, "游ゴシック体", YuGothic, "メイリオ", Meiryo, "Helvetica Neue", HelveticaNeue, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
// color
$default-background-color: #fafafa !default;
$default-border-color: #f0f0f0 !default;
$default-link-text-color: #2e7eb3 !default;
$default-link-text-hover-color: #38a0e4 !default;
$sidebar-background-color: #f9f9f9 !default;
$sidebar-hover-color: #eee !default;
$sidebar-active-color: #eee !default;
// code
$code-font-size: .95rem !default;
$code-block-background-color: #f4f6f8 !default;
$code-border-color: #f0f0f0 !default;
$code-inline-background-color: #f0f0f0 !default;
$code-font-family: Consolas,"Liberation Mono",Menlo,Courier,monospace !default;
// breakpoint
$default-breakpoints: (
xl: 1280px,
lg: 1024px,
md: 896px,
sm: 768px,
xs: 480px
) !default;
// grid
$flexbox-grid-mixins-box-sizing: null !default;
$flexbox-grid-mixins-stack: margin-top !default;

59
src/scss/chroma.scss Normal file
View file

@ -0,0 +1,59 @@
/* Background */ .chroma { color: #f8f8f2; background-color: #272822 }
/* Error */ .chroma .err { color: #960050; background-color: #1e0010 }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: 100%; overflow: auto; display: block; }
/* LineHighlight */ .chroma .hl { background-color: #ffffcc; display: block; width: 100% }
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; display: block; }
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
/* Keyword */ .chroma .k { color: #66d9ef }
/* KeywordConstant */ .chroma .kc { color: #66d9ef }
/* KeywordDeclaration */ .chroma .kd { color: #66d9ef }
/* KeywordNamespace */ .chroma .kn { color: #f92672 }
/* KeywordPseudo */ .chroma .kp { color: #66d9ef }
/* KeywordReserved */ .chroma .kr { color: #66d9ef }
/* KeywordType */ .chroma .kt { color: #66d9ef }
/* NameAttribute */ .chroma .na { color: #a6e22e }
/* NameClass */ .chroma .nc { color: #a6e22e }
/* NameConstant */ .chroma .no { color: #66d9ef }
/* NameDecorator */ .chroma .nd { color: #a6e22e }
/* NameException */ .chroma .ne { color: #a6e22e }
/* NameFunction */ .chroma .nf { color: #a6e22e }
/* NameOther */ .chroma .nx { color: #a6e22e }
/* NameTag */ .chroma .nt { color: #f92672 }
/* Literal */ .chroma .l { color: #ae81ff }
/* LiteralDate */ .chroma .ld { color: #e6db74 }
/* LiteralString */ .chroma .s { color: #e6db74 }
/* LiteralStringAffix */ .chroma .sa { color: #e6db74 }
/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 }
/* LiteralStringChar */ .chroma .sc { color: #e6db74 }
/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 }
/* LiteralStringDoc */ .chroma .sd { color: #e6db74 }
/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 }
/* LiteralStringEscape */ .chroma .se { color: #ae81ff }
/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 }
/* LiteralStringInterpol */ .chroma .si { color: #e6db74 }
/* LiteralStringOther */ .chroma .sx { color: #e6db74 }
/* LiteralStringRegex */ .chroma .sr { color: #e6db74 }
/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 }
/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 }
/* LiteralNumber */ .chroma .m { color: #ae81ff }
/* LiteralNumberBin */ .chroma .mb { color: #ae81ff }
/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff }
/* LiteralNumberHex */ .chroma .mh { color: #ae81ff }
/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff }
/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff }
/* LiteralNumberOct */ .chroma .mo { color: #ae81ff }
/* Operator */ .chroma .o { color: #f92672 }
/* OperatorWord */ .chroma .ow { color: #f92672 }
/* Comment */ .chroma .c { color: #75715e }
/* CommentHashbang */ .chroma .ch { color: #75715e }
/* CommentMultiline */ .chroma .cm { color: #75715e }
/* CommentSingle */ .chroma .c1 { color: #75715e }
/* CommentSpecial */ .chroma .cs { color: #75715e }
/* CommentPreproc */ .chroma .cp { color: #75715e }
/* CommentPreprocFile */ .chroma .cpf { color: #75715e }
/* GenericDeleted */ .chroma .gd { color: #f92672 }
/* GenericEmph */ .chroma .ge { font-style: italic }
/* GenericInserted */ .chroma .gi { color: #a6e22e }
/* GenericStrong */ .chroma .gs { font-weight: bold }
/* GenericSubheading */ .chroma .gu { color: #75715e }

View file

@ -0,0 +1,199 @@
@use '../variable';
@use '../function/calc-stack';
/*-----------------------*
Element v1.0.0-custom
*-----------------------*/
* {
box-sizing: border-box;
}
:root {
font-size: variable.$default-font-size;
line-height: calc-stack.line-height(variable.$default-line-space, variable.$default-font-size);
color: variable.$default-font-color;
font-family: var(--custom-font-family-base, variable.$default-font-family);
font-feature-settings : 'pwid';
}
body {
background-color: variable.$default-background-color;
margin: variable.$default-layout-margin;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--custom-font-family-headings, variable.$default-font-family);
font-weight: bold;
line-height: variable.$default-line-height;
> small {
font-size: 75%;
font-weight: normal;
}
}
h1 {
font-size: 240%;
line-height: calc-stack.line-height(variable.$default-line-space, 240%);
}
h2 {
font-size: 200%;
line-height: calc-stack.line-height(variable.$default-line-space, 200%);
}
h3 {
font-size: 160%;
line-height: calc-stack.line-height(variable.$default-line-space, 160%);
}
h4 {
font-size: 125%;
line-height: calc-stack.line-height(variable.$default-line-space, 125%);
}
h5 {
font-size: 100%;
line-height: calc-stack.line-height(variable.$default-line-space, 100%);
}
h6 {
font-size: 80%;
line-height: calc-stack.line-height(variable.$default-line-space, 80%);
}
a {
color: var(--custom-link-text-color, variable.$default-link-text-color);
text-decoration: none;
&:focus,
&:active,
&:hover {
color: var(--custom-link-text-hover-color, variable.$default-link-text-hover-color);
text-decoration: underline;
}
}
hr {
background-color: #ccc;
height: 2px;
border: 0;
}
p {
font-size: variable.$default-font-size;
}
img {
display: inline-block;
line-height: 0;
}
img,
video {
height: auto;
max-width: 100%;
}
table {
border-collapse: collapse;
border: 1px solid variable.$default-border-color;
width: 100%;
}
th,
td {
border-top: 1px solid variable.$default-border-color;
border-right: 1px solid variable.$default-border-color;
tr:nth-child(even) & {
background: #f8f8f8;
}
padding: .6rem;
}
th {
background: #eee;
font-weight: bold;
text-align: left;
}
ul {
list-style-type: disc;
}
ul {
&.no-style {
list-style: none;
padding-left: 0;
}
&.inline {
list-style: none;
padding-left: 0;
li {
display: inline;
padding-right: 2rem;
}
}
}
dt {
font-weight: bold;
}
dd {
margin-left: 2rem;
}
blockquote {
color: #999;
padding: variable.$default-layout-padding;
background-color: #f4f4f4;
border-left: 4px solid variable.$default-border-color;
border-radius: .2rem;
}
code,
pre,
kbd {
font-family: Menlo, Monaco, "Courier New", monospace;
}
code,
kbd {
padding: .2rem;
border-radius: .2rem;
}
code {
background-color: #f4f4f4;
}
kbd {
color: #fff;
background-color: #333;
}
pre {
background-color: #f4f4f4;
padding: variable.$default-layout-padding;
overflow: auto;
white-space: pre-wrap;
border-radius: .2rem;
code {
padding: 0;
background-color: unset;
}
&.wrap {
white-space: pre;
white-space: pre-wrap;
word-break: break-all;
word-wrap: break-word;
}
&.scrollable {
max-height: 240px;
overflow-y: scroll;
}
}
figcaption {
color: #333;
font-size: variable.$default-font-size;
line-height: calc-stack.line-height(variable.$default-line-space, variable.$default-font-size);
}

View file

@ -0,0 +1,4 @@
@use "normalize";
@use "reset";
@use "element";
@use "stack";

View file

@ -0,0 +1,355 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
/* stylelint-disable */
font-family: monospace, monospace; /* 1 */
/* stylelint-enable */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
/* stylelint-disable */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
/* stylelint-enable */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
/* stylelint-disable */
font-family: monospace, monospace; /* 1 */
/* stylelint-enable */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

View file

@ -0,0 +1,72 @@
/*-----------------------*
Reset
*-----------------------*/
* {
box-sizing: border-box;
}
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption,
blockquote,
dl,
dd {
margin: 0;
}
a {
text-decoration: none;
color: inherit;
cursor: pointer;
}
input,
button,
textarea,
select {
font: inherit;
}
button {
background-color: transparent;
color: inherit;
border-width: 0;
padding: 0;
cursor: pointer;
}
input::-moz-focus-inner {
border: 0;
margin: 0;
padding: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: inherit;
font-weight: inherit;
}
cite {
font-style: normal;
}
fieldset {
border-width: 0;
margin: 0;
padding: 0;
}

View file

@ -0,0 +1,66 @@
@use '../variable';
/*-----------------------*
stack
*-----------------------*/
:root {
--const-stack: #{variable.$default-stack};
--stack-top: #{variable.$default-stack};
--stack-bottom: 0;
--first-stack-top: 0;
--first-stack-bottom: 0;
--last-stack-top: 0;
--last-stack-bottom: 0;
}
.first-stack,
%first-stack {
margin-top: var(--first-stack-top, unset);
margin-bottom: var(--first-stack-bottom, unset);
}
.stack,
%stack {
margin-top: var(--stack-top, unset);
margin-bottom: var(--stack-bottom, unset);
}
.last-stack,
%last-stack {
margin-top: var(--last-stack-top, unset);
margin-bottom: var(--last-stack-bottom, unset);
}
.stack-multi--by2,
%stack-multi--by2 {
margin-top: calc(var(--first-stack-top, unset) * 2);
margin-bottom: calc(var(--first-stack-bottom, unset) * 2);
}
.stack-multi--by4,
%stack-multi--by4 {
margin-top: calc(var(--first-stack-top, unset) * 4);
margin-bottom: calc(var(--first-stack-bottom, unset) * 4);
}
.stack-divi--by2,
%stack-divi--by2 {
margin-top: calc(var(--first-stack-top, unset) / 2);
margin-bottom: calc(var(--first-stack-bottom, unset) / 2);
}
.none-stack,
%none-stack {
margin-top: 0;
}
.unset-stack,
%unset-stack {
margin-top: unset;
}
.reverse-stack
%reverse-stack {
margin-top: var(--stack-bottom, unset);
margin-bottom: var(--stack-top, unset);
}

View file

@ -0,0 +1,52 @@
@charset "utf-8";
// Built-In Modules
@use 'sass:math';
// Included Modules
@use 'strip-unit';
// ===================================================================
// px to em
// ===================================================================
@function px2em($px, $base: 16) {
@return math.div(strip-unit.strip-unit($px), strip-unit.strip-unit($base)) * 1em;
}
@function px2rem($px, $base: 16) {
@return math.div(strip-unit.strip-unit($px), strip-unit.strip-unit($base)) * 1rem;
}
// ===================================================================
// percent to px
// ========================================================n===========
@function percent2px($percent, $base: 16) {
@return strip-unit.strip-unit($base) * math.div(strip-unit.strip-unit($percent), 100) * 1px;
}
// ===================================================================
// percent to em
// ===================================================================
@function percent2em($percent, $base: 16) {
$ratio: math.div((strip-unit.strip-unit($percent), 100));
@return math.div(strip-unit.strip-unit($base) * $ratio, strip-unit.strip-unit($base)) * 1em;
}
@function percent2rem($percent, $base: 16) {
$ratio: math.div((strip-unit.strip-unit($percent), 100));
@return math.div((strip-unit.strip-unit($base) * $ratio), strip-unit.strip-unit($base)) * 1rem;
}
// ===================================================================
// em to px
// ===================================================================
@function em2px($em, $base: 16) {
@return strip-unit.strip-unit($em) * strip-unit.strip-unit($base) * 1px;
}
@function rem2px($rem, $base: 16) {
@return strip-unit.strip-unit($rem) * strip-unit.strip-unit($base) * 1px;
}

View file

@ -0,0 +1,40 @@
@charset "utf-8";
// Built-In Modules
@use 'sass:math';
// Included Modules
@use 'calc-font-size';
@use 'strip-unit';
@function stack($line-height: 1, $font-size: 16px, $base-size: 16px) {
@if math.unit($font-size) == '%' {
$font-size: calc-font-size.percent2px($font-size, $base-size);
} @else if math.unit($font-size) == 'em' {
$font-size: calc-font-size.em2px($font-size, $base-size);
} @else if math.unit($font-size) == 'rem' {
$font-size: calc-font-size.rem2px($font-size, $base-size);
}
$line-height-px-unit: strip-unit.strip-unit($line-height) * strip-unit.strip-unit($font-size);
$stack: calc-font-size.px2rem($line-height-px-unit, $base-size);
@return $stack;
}
@function line-height($line-space: 4px, $font-size: 16px, $base-size: 16px) {
@if math.unit($font-size) == '%' {
$font-size: calc-font-size.percent2px($font-size, $base-size);
} @else if math.unit($font-size) == 'em' {
$font-size: calc-font-size.em2px($font-size, $base-size);
} @else if math.unit($font-size) == 'rem' {
$font-size: calc-font-size.rem2px($font-size, $base-size);
}
$font-size: strip-unit.strip-unit($font-size);
$line-space: strip-unit.strip-unit($line-space);
$line-height: math.div(($line-space * 2) + $font-size, $font-size);
@return $line-height;
}

View file

@ -0,0 +1,26 @@
@charset "utf-8";
// Built-In Modules
@use 'sass:math';
@use 'sass:color';
// ===================================================================
// contrast color
// ===================================================================
@function contrast-color($color: null, $dark: #000, $light: #fff) {
@if $color == null {
@return null;
}
@else {
$color-brightness: brightness($color);
$light-color-brightness: brightness($light);
$dark-color-brightness: brightness($dark);
@return if(math.abs($color-brightness - $light-color-brightness) > math.abs($color-brightness - $dark-color-brightness), $light, $dark);
}
}
@function brightness($color: null) {
@return math.div((color.red($color) * 299) + (color.green($color) * 587) + (color.blue($color) * 114), 1000);
}

View file

@ -0,0 +1,17 @@
@charset "utf-8";
// Built-In Modules
@use 'sass:meta';
@use 'sass:math';
@function strip-unit($value) {
@if meta.type-of($value) == 'number' and math.is-unitless($value) == false {
@return math.div($value, $value * 0 + 1);
} @else if meta.type-of($value) == 'number' {
@return $value;
} @else {
@warn $value;
@warn meta.type-of($value);
@error "error strip unit"
}
}

4
src/scss/theme.scss Normal file
View file

@ -0,0 +1,4 @@
@use "foundation";
@use "structure";
@use "component";
@use "project";

1225
static/css/theme.css Normal file

File diff suppressed because it is too large Load diff

1
static/css/theme.css.map Normal file

File diff suppressed because one or more lines are too long

2
static/css/theme.min.css vendored Normal file

File diff suppressed because one or more lines are too long