aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/stylesheets/layout
diff options
context:
space:
mode:
authorsadbeast <sadbeast@sadbeast.com>2024-01-31 17:47:56 -0800
committersadbeast <sadbeast@sadbeast.com>2024-01-31 17:47:56 -0800
commit332ec93366315fa1ed7b4acd7a3407c96e8ddfa7 (patch)
tree6ae553317f12a7a6a29c849c8805ffab96436dc2 /app/assets/stylesheets/layout
downloadtd-main.tar.gz
td-main.tar.bz2
initial mistakeHEADmain
Diffstat (limited to 'app/assets/stylesheets/layout')
-rw-r--r--app/assets/stylesheets/layout/_container.scss42
-rw-r--r--app/assets/stylesheets/layout/_document.scss48
-rw-r--r--app/assets/stylesheets/layout/_grid.scss24
-rw-r--r--app/assets/stylesheets/layout/_scroller.scss16
-rw-r--r--app/assets/stylesheets/layout/_section.scss8
-rw-r--r--app/assets/stylesheets/layout/_sectioning.scss70
6 files changed, 208 insertions, 0 deletions
diff --git a/app/assets/stylesheets/layout/_container.scss b/app/assets/stylesheets/layout/_container.scss
new file mode 100644
index 0000000..6a20bea
--- /dev/null
+++ b/app/assets/stylesheets/layout/_container.scss
@@ -0,0 +1,42 @@
+@if ($enable-class-container and $enable-classes) {
+ /**
+ * Container
+ */
+
+ .container,
+ .container-fluid {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+ padding-right: var(--spacing);
+ padding-left: var(--spacing);
+ }
+
+ .container {
+ @if map-get($breakpoints, "sm") {
+ @media (min-width: map-get($breakpoints, "sm")) {
+ max-width: map-get($viewports, "sm");
+ padding-right: 0;
+ padding-left: 0;
+ }
+ }
+
+ @if map-get($breakpoints, "md") {
+ @media (min-width: map-get($breakpoints, "md")) {
+ max-width: map-get($viewports, "md");
+ }
+ }
+
+ @if map-get($breakpoints, "lg") {
+ @media (min-width: map-get($breakpoints, "lg")) {
+ max-width: map-get($viewports, "lg");
+ }
+ }
+
+ @if map-get($breakpoints, "xl") {
+ @media (min-width: map-get($breakpoints, "xl")) {
+ max-width: map-get($viewports, "xl");
+ }
+ }
+ }
+}
diff --git a/app/assets/stylesheets/layout/_document.scss b/app/assets/stylesheets/layout/_document.scss
new file mode 100644
index 0000000..1607659
--- /dev/null
+++ b/app/assets/stylesheets/layout/_document.scss
@@ -0,0 +1,48 @@
+/**
+ * Document
+ * Content-box & Responsive typography
+ */
+
+// Reboot based on :
+// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
+// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css
+// ––––––––––––––––––––
+
+// 1. Add border box sizing in all browsers (opinionated)
+// 2. Backgrounds do not repeat by default (opinionated)
+*,
+*::before,
+*::after {
+ box-sizing: border-box; // 1
+ background-repeat: no-repeat; // 2
+}
+
+// 1. Add text decoration inheritance in all browsers (opinionated)
+// 2. Add vertical alignment inheritance in all browsers (opinionated)
+::before,
+::after {
+ text-decoration: inherit; // 1
+ vertical-align: inherit; // 2
+}
+
+// 1. Use the default cursor in all browsers (opinionated)
+// 2. Change the line height in all browsers (opinionated)
+// 3. Breaks words to prevent overflow in all browsers (opinionated)
+// 4. Use a 4-space tab width in all browsers (opinionated)
+// 5. Remove the grey highlight on links in iOS (opinionated)
+// 6. Prevent adjustments of font size after orientation changes in iOS
+:where(:root) {
+ -webkit-tap-highlight-color: transparent; // 5
+ -webkit-text-size-adjust: 100%; // 6
+ text-size-adjust: 100%; // 6
+ background-color: var(--background-color);
+ color: var(--color);
+ font-weight: var(--font-weight);
+ font-size: var(--font-size);
+ line-height: var(--line-height); // 2
+ font-family: var(--font-family);
+ text-rendering: optimizeLegibility;
+ overflow-wrap: break-word; // 3
+ cursor: default; // 1
+ tab-size: 4; // 4
+}
diff --git a/app/assets/stylesheets/layout/_grid.scss b/app/assets/stylesheets/layout/_grid.scss
new file mode 100644
index 0000000..572312b
--- /dev/null
+++ b/app/assets/stylesheets/layout/_grid.scss
@@ -0,0 +1,24 @@
+@if ($enable-classes and $enable-grid) {
+ /**
+ * Grid
+ * Minimal grid system with auto-layout columns
+ */
+
+ .grid {
+ grid-column-gap: var(--grid-spacing-horizontal);
+ grid-row-gap: var(--grid-spacing-vertical);
+ display: grid;
+ grid-template-columns: 1fr;
+ margin: 0;
+
+ @if map-get($breakpoints, "lg") {
+ @media (min-width: map-get($breakpoints, "lg")) {
+ grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
+ }
+ }
+
+ & > * {
+ min-width: 0; // HACK for childs in overflow
+ }
+ }
+}
diff --git a/app/assets/stylesheets/layout/_scroller.scss b/app/assets/stylesheets/layout/_scroller.scss
new file mode 100644
index 0000000..9b58ef7
--- /dev/null
+++ b/app/assets/stylesheets/layout/_scroller.scss
@@ -0,0 +1,16 @@
+/**
+ * Horizontal scroller (<figure>)
+ */
+
+// Wrapper to make any content responsive across all viewports
+figure {
+ display: block;
+ margin: 0;
+ padding: 0;
+ overflow-x: auto;
+
+ figcaption {
+ padding: calc(var(--spacing) * 0.5) 0;
+ color: var(--muted-color);
+ }
+}
diff --git a/app/assets/stylesheets/layout/_section.scss b/app/assets/stylesheets/layout/_section.scss
new file mode 100644
index 0000000..8bc6902
--- /dev/null
+++ b/app/assets/stylesheets/layout/_section.scss
@@ -0,0 +1,8 @@
+/**
+ * Section
+ * Responsive spacings for section
+ */
+
+section {
+ margin-bottom: var(--block-spacing-vertical);
+}
diff --git a/app/assets/stylesheets/layout/_sectioning.scss b/app/assets/stylesheets/layout/_sectioning.scss
new file mode 100644
index 0000000..00d73c5
--- /dev/null
+++ b/app/assets/stylesheets/layout/_sectioning.scss
@@ -0,0 +1,70 @@
+/**
+ * Sectioning
+ * Container and responsive spacings for header, main, footer
+ */
+
+// Reboot based on :
+// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
+// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css
+// ––––––––––––––––––––
+
+// Render the `main` element consistently in IE
+main {
+ display: block;
+}
+
+// Pico
+// ––––––––––––––––––––
+
+// 1. Remove the margin in all browsers (opinionated)
+#{$semantic-root-element} {
+ width: 100%;
+ margin: 0; // 1
+
+ > header,
+ > main,
+ > footer {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+
+ // Semantic container
+ @if $enable-semantic-container {
+ padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
+
+ // Centered viewport
+ @if $enable-viewport {
+ @if map-get($breakpoints, "sm") and $enable-viewport {
+ @media (min-width: map-get($breakpoints, "sm")) {
+ max-width: map-get($viewports, "sm");
+ padding-right: 0;
+ padding-left: 0;
+ }
+ }
+
+ @if map-get($breakpoints, "md") and $enable-viewport {
+ @media (min-width: map-get($breakpoints, "md")) {
+ max-width: map-get($viewports, "md");
+ }
+ }
+
+ @if map-get($breakpoints, "lg") and $enable-viewport {
+ @media (min-width: map-get($breakpoints, "lg")) {
+ max-width: map-get($viewports, "lg");
+ }
+ }
+
+ @if map-get($breakpoints, "xl") and $enable-viewport {
+ @media (min-width: map-get($breakpoints, "xl")) {
+ max-width: map-get($viewports, "xl");
+ }
+ }
+ }
+ }
+
+ // Semantic container
+ @else {
+ padding: var(--block-spacing-vertical) 0;
+ }
+ }
+}