1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-26 23:08:26 -04:00
jarv.is/assets/sass/components/_global.scss

156 lines
3.6 KiB
SCSS

@charset "UTF-8";
// Global Styles
body {
width: 100%;
height: 100%;
margin: 0 auto;
font-family: $webfont-sans;
font-kerning: normal;
font-feature-settings: "kern", "liga", "calt", "clig", "ss01";
line-height: 1.5;
box-sizing: border-box;
// manually setting light/dark mode backgrounds and bulb icon
// really just the color of header & footer
&.light {
background-color: map-get(map-get($themes, "light"), "background-outer");
button.dark-mode-toggle {
background-image: url($icon-bulb-on);
}
}
&.dark {
background-color: map-get(map-get($themes, "dark"), "background-outer");
button.dark-mode-toggle {
background-image: url($icon-bulb-off);
}
}
}
// stretch background for entire width of content area
main {
width: 100%;
@include colors() {
background-color: c(background-inner);
}
}
section.page {
max-width: $max-width;
margin: 0 auto;
padding-left: 1.5em;
padding-right: 1.5em;
display: block; // https://stackoverflow.com/questions/28794718/max-width-not-working-for-ie-11
@include colors() {
color: c(text);
}
}
/*! Credit for cool link underlines: https://www.dannyguo.com/blog/animated-multiline-link-underlines-with-css/ */
a {
text-decoration: none;
background-position: 0% 100%;
background-repeat: no-repeat;
background-size: 0% $link-underline-size;
padding-bottom: $link-underline-size;
transition: background-size 0.25s ease-in-out;
@include colors() {
color: c(links);
background-image: underline-hack(c(links));
}
&:hover {
background-size: 100% $link-underline-size;
}
&.no-underline {
background: none !important;
padding-bottom: 0;
}
}
strong {
letter-spacing: 0.008em; // not sure why the discrepancy between weights
}
blockquote {
margin-left: 0;
padding-left: 1.5em;
border-left: 3px solid;
@include colors() {
color: c(medium-dark);
border-color: c(links);
}
}
hr {
margin: 1.5em auto;
height: 2px;
border: 0;
@include colors() {
background-color: c(light);
}
}
// button reset
button {
border: 0;
margin: 0;
padding: 0;
overflow: visible;
background: transparent;
// inherit font & color from ancestor
color: inherit;
font: inherit;
line-height: normal;
// corrects inability to style clickable `input` types on iOS
// stylelint-disable-next-line plugin/no-unsupported-browser-features
appearance: none;
}
// make SVG twemojis relative to surrounding text
// https://github.com/twitter/twemoji#inline-styles
img.emoji {
height: 1.1em;
width: 1.1em;
margin: 0;
padding: 0 0.09em;
vertical-align: -0.18em;
border: 0;
display: inline-block;
// have cursor act like it's hovering a regular unicode emoji, especially since twemojis can still be copied/pasted
cursor: text;
}
// manually unset cursor when emoji's in a link, otherwise it'll keep text cursor set above
a img.emoji {
cursor: inherit;
}
// Responsive
@mixin responsive--global() {
body {
// Safari iOS menu bar reappears below 44px:
// https://www.eventbrite.com/engineering/mobile-safari-why/
padding-bottom: 45px !important;
// Allows you to scroll below the viewport; default value is visible
overflow-y: scroll;
// Fix weird font size behavior on iOS Safari: https://github.com/jakejarvis/jarv.is/issues/18
// https://stackoverflow.com/questions/3226001/some-font-sizes-rendered-larger-on-safari-iphone
// https://www.456bereastreet.com/archive/201011/beware_of_-webkit-text-size-adjustnone/
// stylelint-disable-next-line plugin/no-unsupported-browser-features
text-size-adjust: 100%;
}
}