mirror of
https://github.com/locomotivemtl/locomotive-boilerplate.git
synced 2026-01-15 00:55:08 +08:00
Merge pull request #165 from locomotivemtl/feature/css-reset
Modernize css normalize
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": 1711476341450
|
"version": 1711479720413
|
||||||
}
|
}
|
||||||
124
assets/styles/elements/_normalize.scss
Normal file
124
assets/styles/elements/_normalize.scss
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
// ==========================================================================
|
||||||
|
// Elements / Normalize
|
||||||
|
// ==========================================================================
|
||||||
|
|
||||||
|
// Modern CSS Normalize
|
||||||
|
// Based on the reset by Andy.set with some tweaks.
|
||||||
|
// Original by Andy.set: https://piccalil.li/blog/a-more-modern-css-reset/
|
||||||
|
// Review by Chris collier: https://chriscoyier.net/2023/10/03/being-picky-about-a-css-reset-for-fun-pleasure/
|
||||||
|
|
||||||
|
|
||||||
|
// Box sizing rules
|
||||||
|
*,
|
||||||
|
*:after,
|
||||||
|
*:before {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent font size inflation
|
||||||
|
html {
|
||||||
|
-moz-text-size-adjust: none;
|
||||||
|
-webkit-text-size-adjust: none;
|
||||||
|
text-size-adjust: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove default margin in favour of better control in authored CSS
|
||||||
|
p,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
dl,
|
||||||
|
dd,
|
||||||
|
figure,
|
||||||
|
blockquote {
|
||||||
|
margin-block: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove list styles on ul, ol elements with a class, which suggests default styling will be removed
|
||||||
|
ul[class],
|
||||||
|
ol[class] {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set core defaults
|
||||||
|
html {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set shorter line heights on headings and interactive elements
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
button {
|
||||||
|
line-height: 1.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Balance text wrapping on headings
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
text-wrap: balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove a elements default styles if they have a class
|
||||||
|
a[class] {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make assets easier to work with
|
||||||
|
img,
|
||||||
|
svg,
|
||||||
|
canvas,
|
||||||
|
picture {
|
||||||
|
display: block;
|
||||||
|
max-inline-size: 100%;
|
||||||
|
block-size: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inherit fonts for inputs and buttons
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure textareas without a rows attribute are not tiny
|
||||||
|
textarea:not([rows]) {
|
||||||
|
min-height: 10em;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Anything that has been anchored to should have extra scroll margin
|
||||||
|
:target {
|
||||||
|
scroll-margin-block: 1rlh;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reduced mootion preference
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
*,
|
||||||
|
*:after,
|
||||||
|
*:before {
|
||||||
|
animation-duration: 0.01ms !important;
|
||||||
|
animation-iteration-count: 1 !important;
|
||||||
|
transition-duration: 0.01ms !important;
|
||||||
|
scroll-behavior: auto !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
// ==========================================================================
|
|
||||||
// Generic / Buttons
|
|
||||||
// ==========================================================================
|
|
||||||
|
|
||||||
// 1. Allow us to style box model properties.
|
|
||||||
// 2. Fixes odd inner spacing in IE7.
|
|
||||||
// 3. Reset/normalize some styles.
|
|
||||||
// 4. Line different sized buttons up a little nicer.
|
|
||||||
// 5. Make buttons inherit font styles (often necessary when styling `input`s as buttons).
|
|
||||||
// 6. Force all button-styled elements to appear clickable.
|
|
||||||
|
|
||||||
button,
|
|
||||||
.c-button {
|
|
||||||
@include u-hocus {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
display: inline-block; // [1]
|
|
||||||
overflow: visible; // [2]
|
|
||||||
margin: 0; // [3]
|
|
||||||
padding: 0;
|
|
||||||
outline: 0;
|
|
||||||
border: 0;
|
|
||||||
background: none transparent;
|
|
||||||
color: inherit;
|
|
||||||
vertical-align: middle; // [4]
|
|
||||||
text-align: center; // [3]
|
|
||||||
text-decoration: none;
|
|
||||||
text-transform: none;
|
|
||||||
font: inherit; // [5]
|
|
||||||
line-height: normal;
|
|
||||||
cursor: pointer; // [6]
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
// ==========================================================================
|
|
||||||
// Generic / Forms
|
|
||||||
// ==========================================================================
|
|
||||||
|
|
||||||
input,
|
|
||||||
select,
|
|
||||||
textarea {
|
|
||||||
display: block;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
outline: 0;
|
|
||||||
border: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
background: none transparent;
|
|
||||||
color: inherit;
|
|
||||||
font: inherit;
|
|
||||||
line-height: normal;
|
|
||||||
appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
text-transform: none;
|
|
||||||
|
|
||||||
&::-ms-expand {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&::-ms-value {
|
|
||||||
background: none;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// // Remove Firefox :focus dotted outline, breaks color inherit
|
|
||||||
// // &:-moz-focusring {
|
|
||||||
// // color: transparent;
|
|
||||||
// // text-shadow: 0 0 0 #000000; // Text :focus color
|
|
||||||
// // }
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea {
|
|
||||||
overflow: auto;
|
|
||||||
resize: vertical;
|
|
||||||
}
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
// ==========================================================================
|
|
||||||
// Generic
|
|
||||||
// ==========================================================================
|
|
||||||
|
|
||||||
html {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the correct display in IE 10-.
|
|
||||||
// 1. Add the correct display in IE.
|
|
||||||
|
|
||||||
template, // [1]
|
|
||||||
[hidden] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
:before,
|
|
||||||
:after {
|
|
||||||
box-sizing: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
font-style: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
dfn,
|
|
||||||
cite,
|
|
||||||
em,
|
|
||||||
i {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
b,
|
|
||||||
strong {
|
|
||||||
font-weight: $font-weight-bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
|
|
||||||
svg {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
p,
|
|
||||||
figure {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1. Single taps should be dispatched immediately on clickable elements
|
|
||||||
|
|
||||||
a, area, button, input, label, select, textarea, [tabindex] {
|
|
||||||
-ms-touch-action: manipulation; // [1]
|
|
||||||
touch-action: manipulation;
|
|
||||||
}
|
|
||||||
|
|
||||||
[hreflang] > abbr[title] {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
border-spacing: 0;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
display: block;
|
|
||||||
margin: 1em 0;
|
|
||||||
padding: 0;
|
|
||||||
height: 1px;
|
|
||||||
border: 0;
|
|
||||||
border-top: 1px solid #CCCCCC;
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
// ==========================================================================
|
|
||||||
// Generic / Media
|
|
||||||
// ==========================================================================
|
|
||||||
|
|
||||||
// 1. Setting `vertical-align` removes the whitespace that appears under `img`
|
|
||||||
// elements when they are dropped into a page as-is. Safer alternative to
|
|
||||||
// using `display: block;`.
|
|
||||||
|
|
||||||
audio,
|
|
||||||
canvas,
|
|
||||||
iframe,
|
|
||||||
img,
|
|
||||||
svg,
|
|
||||||
video {
|
|
||||||
vertical-align: middle; // [1]
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the correct display in iOS 4-7.
|
|
||||||
|
|
||||||
audio:not([controls]) {
|
|
||||||
display: none;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. Fluid media for responsive purposes.
|
|
||||||
|
|
||||||
img,
|
|
||||||
svg {
|
|
||||||
max-width: 100%; // [2]
|
|
||||||
height: auto;
|
|
||||||
|
|
||||||
// 4. If a `width` and/or `height` attribute have been explicitly defined,
|
|
||||||
// let’s not make the image fluid.
|
|
||||||
|
|
||||||
&[width], // [4]
|
|
||||||
&[height] {
|
|
||||||
// [4]
|
|
||||||
max-width: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 4. Offset `alt` text from surrounding copy.
|
|
||||||
|
|
||||||
img {
|
|
||||||
font-style: italic; // [4]
|
|
||||||
}
|
|
||||||
|
|
||||||
// 5. SVG elements should fallback to their surrounding text color.
|
|
||||||
|
|
||||||
svg {
|
|
||||||
fill: currentColor; // [5]
|
|
||||||
}
|
|
||||||
@@ -30,15 +30,6 @@
|
|||||||
@import "settings/config.zindexes";
|
@import "settings/config.zindexes";
|
||||||
@import "settings/config.variables";
|
@import "settings/config.variables";
|
||||||
|
|
||||||
// Generic
|
|
||||||
// ==========================================================================
|
|
||||||
|
|
||||||
@import "node_modules/normalize.css/normalize";
|
|
||||||
@import "generic/generic";
|
|
||||||
@import "generic/media";
|
|
||||||
@import "generic/form";
|
|
||||||
@import "generic/button";
|
|
||||||
|
|
||||||
// Vendors
|
// Vendors
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
@import "node_modules/locomotive-scroll/dist/locomotive-scroll";
|
@import "node_modules/locomotive-scroll/dist/locomotive-scroll";
|
||||||
@@ -46,6 +37,7 @@
|
|||||||
// Elements
|
// Elements
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
|
||||||
|
@import "elements/normalize";
|
||||||
@import "elements/document";
|
@import "elements/document";
|
||||||
|
|
||||||
// Objects
|
// Objects
|
||||||
|
|||||||
11
package-lock.json
generated
11
package-lock.json
generated
@@ -11,7 +11,6 @@
|
|||||||
"locomotive-scroll": "^5.0.0-beta.11",
|
"locomotive-scroll": "^5.0.0-beta.11",
|
||||||
"modujs": "^1.4.2",
|
"modujs": "^1.4.2",
|
||||||
"modularload": "^1.2.6",
|
"modularload": "^1.2.6",
|
||||||
"normalize.css": "^8.0.1",
|
|
||||||
"svg4everybody": "^2.1.9"
|
"svg4everybody": "^2.1.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -3021,11 +3020,6 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/normalize.css": {
|
|
||||||
"version": "8.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
|
|
||||||
"integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
|
|
||||||
},
|
|
||||||
"node_modules/object-assign": {
|
"node_modules/object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||||
@@ -7126,11 +7120,6 @@
|
|||||||
"integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
|
"integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"normalize.css": {
|
|
||||||
"version": "8.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
|
|
||||||
"integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
|
|
||||||
},
|
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
"locomotive-scroll": "^5.0.0-beta.11",
|
"locomotive-scroll": "^5.0.0-beta.11",
|
||||||
"modujs": "^1.4.2",
|
"modujs": "^1.4.2",
|
||||||
"modularload": "^1.2.6",
|
"modularload": "^1.2.6",
|
||||||
"normalize.css": "^8.0.1",
|
|
||||||
"svg4everybody": "^2.1.9"
|
"svg4everybody": "^2.1.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user