signal-desktop/stylesheets/_mixins.scss

193 lines
3 KiB
SCSS
Raw Normal View History

2020-10-30 20:34:04 +00:00
// Copyright 2016-2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
2019-10-04 18:06:17 +00:00
// Fonts
@mixin font-title-1 {
font-family: $inter;
font-weight: bolder;
font-size: 28px;
line-height: 34px;
letter-spacing: -0.56px;
}
@mixin font-title-2 {
font-family: $inter;
font-weight: bolder;
font-size: 20px;
line-height: 26px;
letter-spacing: -0.34px;
}
@mixin font-body-1 {
font-family: $inter;
font-size: 15px;
line-height: 21px;
letter-spacing: -0.14px;
2019-10-04 18:06:17 +00:00
}
@mixin font-body-1-bold {
@include font-body-1;
font-weight: bold;
}
@mixin font-body-1-italic {
@include font-body-1;
font-style: italic;
}
@mixin font-body-1-bold-italic {
@include font-body-1;
font-weight: bold;
font-style: italic;
}
@mixin font-body-2 {
font-family: $inter;
font-size: 13px;
line-height: 18px;
letter-spacing: -0.03px;
2019-10-04 18:06:17 +00:00
}
@mixin font-body-2-bold {
@include font-body-2;
font-weight: bold;
}
@mixin font-body-2-italic {
@include font-body-2;
font-style: italic;
}
@mixin font-body-2-bold-italic {
@include font-body-2;
font-weight: bold;
font-style: italic;
}
@mixin font-subtitle {
font-family: $inter;
font-size: 12px;
line-height: 16px;
letter-spacing: 0px;
2019-10-04 18:06:17 +00:00
}
@mixin font-caption {
font-family: $inter;
font-size: 11px;
2019-10-04 18:06:17 +00:00
line-height: 16px;
letter-spacing: 0.06px;
2019-10-04 18:06:17 +00:00
}
@mixin font-caption-bold {
@include font-caption;
font-weight: bold;
}
@mixin font-caption-bold-italic {
@include font-caption;
font-weight: bold;
font-style: italic;
}
// Themes
@mixin light-theme() {
@content;
}
2019-10-04 18:06:17 +00:00
@mixin dark-theme() {
.dark-theme & {
@content;
}
}
@mixin ios-theme() {
.ios-theme & {
@content;
}
}
@mixin ios-dark-theme() {
.dark-theme.ios-theme & {
@content;
}
}
// Icons
@mixin color-svg($svg, $color, $stretch: true) {
2018-05-04 20:07:52 +00:00
-webkit-mask: url($svg) no-repeat center;
@if $stretch {
-webkit-mask-size: 100%;
}
2018-05-04 20:07:52 +00:00
background-color: $color;
}
@mixin header-icon-white($svg) {
2019-10-04 18:06:17 +00:00
@include color-svg($svg, $color-white-alpha-80);
2018-05-04 20:07:52 +00:00
&:focus,
&:hover {
2019-10-04 18:06:17 +00:00
@include color-svg($svg, $color-white);
}
}
@mixin header-icon-black($svg) {
2019-10-04 18:06:17 +00:00
@include color-svg($svg, $color-black-alpha-40);
2018-05-04 20:07:52 +00:00
&:focus,
&:hover {
@include color-svg($svg, black);
}
}
2019-04-22 18:25:37 +00:00
// Keyboard
@mixin keyboard-mode() {
.keyboard-mode & {
@content;
}
}
@mixin mouse-mode() {
.mouse-mode & {
@content;
}
}
@mixin dark-keyboard-mode() {
.dark-theme.keyboard-mode & {
@content;
}
}
@mixin ios-keyboard-mode() {
.ios-theme.keyboard-mode & {
@content;
}
}
2020-07-24 01:35:32 +00:00
@mixin dark-mouse-mode() {
.dark-theme.mouse-mode & {
@content;
}
}
@mixin ios-mouse-mode() {
.ios-theme.mouse-mode & {
@content;
}
}
@mixin dark-ios-keyboard-mode() {
.dark-theme.ios-theme.keyboard-mode & {
@content;
}
}
2019-10-04 18:06:17 +00:00
// Other
2019-04-22 18:25:37 +00:00
2019-10-04 18:06:17 +00:00
@mixin popper-shadow() {
2019-10-17 18:22:07 +00:00
box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.3), 0px 0px 8px rgba(0, 0, 0, 0.05);
2019-04-22 18:25:37 +00:00
}
2019-10-04 18:06:17 +00:00
@mixin button-reset {
background: none;
color: inherit;
border: none;
padding: 0;
2019-11-07 21:36:16 +00:00
margin: 0;
2019-10-04 18:06:17 +00:00
font: inherit;
cursor: pointer;
outline: inherit;
2019-11-07 21:36:16 +00:00
text-align: inherit;
}