mirror of
https://github.com/penpot/penpot.git
synced 2025-01-22 22:49:01 -05:00
165 lines
4.9 KiB
SCSS
165 lines
4.9 KiB
SCSS
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
//
|
|
// Copyright (c) 2015-2016 Andrey Antukh <niwi@niwi.nz>
|
|
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
|
|
|
|
/// This mixin allows you to add styles to a specific Media query inside the style selector specifying which Breaking Point you want to choose.
|
|
/// @group Mixins
|
|
/// @parameter $point - This parameter decide which one of Breaking Point you want to use: "bp-desktop" (Desktop), "bp-tablet" (Tablet) and "bp-mobile" (Mobile).
|
|
@mixin bp($point) {
|
|
|
|
$bp-mobile: "(min-width: 720px)";
|
|
$bp-tablet: "(min-width: 1020px)";
|
|
$bp-desktop: "(min-width: 1366px)";
|
|
|
|
@if $point == mobile {
|
|
@media #{$bp-desktop} { @content; }
|
|
}
|
|
@else if $point == tablet {
|
|
@media #{$bp-tablet} { @content; }
|
|
}
|
|
@else if $point == desktop {
|
|
@media #{$bp-mobile} { @content; }
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// Advanced positioning
|
|
// ----------------
|
|
@mixin position($type,
|
|
$top: $position-default,
|
|
$right: $position-default,
|
|
$bottom: $position-default,
|
|
$left: $position-default) {
|
|
position: $type;
|
|
$allowed_types: absolute relative fixed;
|
|
@if not index($allowed_types, $type) {
|
|
@warn "Unknown position: #{$type}.";
|
|
}
|
|
@each $data in top $top, right $right, bottom $bottom, left $left {
|
|
#{nth($data, 1)}: nth($data, 2);
|
|
}
|
|
}
|
|
@mixin absolute($top: $position-default, $right: $position-default, $bottom: $position-default, $left: $position-default) {
|
|
@include position(absolute, $top, $right, $bottom, $left);
|
|
}
|
|
@mixin relative($top: $position-default, $right: $position-default, $bottom: $position-default, $left: $position-default) {
|
|
@include position(relative, $top, $right, $bottom, $left);
|
|
}
|
|
@mixin fixed($top: $position-default, $right: $position-default, $bottom: $position-default, $left: $position-default) {
|
|
@include position(fixed, $top, $right, $bottom, $left);
|
|
}
|
|
|
|
|
|
/// Center an element vertically and horizontally with an absolute position.
|
|
/// @group Mixins
|
|
|
|
@mixin centerer {
|
|
@include absolute(50%,null,null,50%);
|
|
transform: translate(-50%,-50%);
|
|
}
|
|
|
|
|
|
|
|
/// This mixing allow you to add placeholder colors in all availables browsers
|
|
/// @group Mixins
|
|
|
|
@mixin placeholder {
|
|
&::-webkit-input-placeholder {
|
|
@content;
|
|
}
|
|
|
|
&:-moz-placeholder { /* Firefox 18- */
|
|
@content;
|
|
}
|
|
|
|
&::-moz-placeholder { /* Firefox 19+ */
|
|
@content;
|
|
}
|
|
|
|
&:-ms-input-placeholder {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
/// Allows you to visually
|
|
/// @group Mixins
|
|
|
|
@mixin hide-text {
|
|
font: 0/0 a;
|
|
color: transparent;
|
|
text-shadow: none;
|
|
}
|
|
|
|
/// Shortcut mixin to add new font-face compatible with all browser. To work you need to add the follow formats of font:".eot", ".woff", ".ttf" and "svg".
|
|
/// @group Mixins
|
|
/// @parameter $style-name - Name of the font style
|
|
/// @parameter $file - Name of the font file.
|
|
/// @parameter $weight [normal] - With this variable you can add how much weight you want to add to this specific font. EX: Bold
|
|
/// @parameter $style [normal] - With this variable you can add a font style to this specific font. EX: Italic
|
|
|
|
@mixin font-face($style-name, $file, $weight: unquote("normal"), $style: unquote("normal") ) {
|
|
$filepath: "/fonts/" + $file;
|
|
@font-face {
|
|
font-family: "#{$style-name}";
|
|
src: url($filepath + ".eot");
|
|
src: url($filepath + ".eot?#iefix") format('embedded-opentype'), url($filepath + ".woff") format('woff'), url($filepath + ".ttf") format('truetype'), url($filepath + ".svg#" + $style-name + "") format('svg');
|
|
font-weight: unquote($weight);
|
|
font-style: unquote($style);
|
|
}
|
|
}
|
|
|
|
// Collection fonts
|
|
|
|
@mixin font-face-collection($style-name, $file, $weight: unquote("normal"), $style: unquote("normal") ) {
|
|
$filepath: "/fonts/collection/" + $file;
|
|
@font-face {
|
|
font-family: "#{$style-name}";
|
|
src: url($filepath + ".eot");
|
|
src: url($filepath + ".eot?#iefix") format('embedded-opentype'), url($filepath + ".woff") format('woff'), url($filepath + ".ttf") format('truetype'), url($filepath + ".svg#" + $style-name + "") format('svg');
|
|
font-weight: unquote($weight);
|
|
font-style: unquote($style);
|
|
}
|
|
}
|
|
|
|
@mixin tooltipShow {
|
|
&:hover {
|
|
.icon-tooltip {
|
|
display: block;
|
|
left: 2rem;
|
|
animation: tooltipAppear .2s linear ;
|
|
}
|
|
}
|
|
&.active {
|
|
.icon-tooltip {
|
|
display: block;
|
|
left: 2rem;
|
|
animation: tooltipAppear .2s linear ;
|
|
}
|
|
}
|
|
}
|
|
|
|
@mixin text-ellipsis {
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
}
|
|
|
|
@mixin paragraph-ellipsis {
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
position: relative;
|
|
|
|
&::after {
|
|
background-color: $primary-ui-bg;
|
|
bottom: -3px;
|
|
content: "...";
|
|
padding-left: 10px;
|
|
position: absolute;
|
|
right: 2px;
|
|
}
|
|
|
|
}
|