PHP Classes

File: engine/modules/contrib/foundation/source/scss/components/_switch.scss

Recommend this page to a friend!
  Classes of Aldo Tripiciano   Quanta CMS   engine/modules/contrib/foundation/source/scss/components/_switch.scss   Download  
File: engine/modules/contrib/foundation/source/scss/components/_switch.scss
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Quanta CMS
Manage content that works without a database
Author: By
Last change:
Date: 5 years ago
Size: 5,877 bytes
 

Contents

Class file image Download
// Foundation for Sites by ZURB // foundation.zurb.com // Licensed under MIT Open Source //// /// @group switch //// /// Background color of a switch. /// @type Color $switch-background: $medium-gray !default; /// Background active color of a switch. /// @type Color $switch-background-active: $primary-color !default; /// Height of a switch, with no class applied. /// @type Number $switch-height: 2rem !default; /// Height of a switch with .tiny class. /// @type Number $switch-height-tiny: 1.5rem !default; /// Height of a switch with .small class. /// @type Number $switch-height-small: 1.75rem !default; /// Height of a switch with .large class. /// @type Number $switch-height-large: 2.5rem !default; /// Border radius of the switch /// @type Number $switch-radius: $global-radius !default; /// border around a modal. /// @type Number $switch-margin: $global-margin !default; /// Background color for the switch container and paddle. /// @type Color $switch-paddle-background: $white !default; /// Spacing between a switch paddle and the edge of the body. /// @type Number $switch-paddle-offset: 0.25rem !default; /// border radius of the switch paddle /// @type Number $switch-paddle-radius: $global-radius !default; /// switch transition. /// @type Number $switch-paddle-transition: all 0.25s ease-out !default; // make them variables // ask about accessibility on label // change class name for text /// Adds styles for a switch container. Apply this to a container class. @mixin switch-container { position: relative; margin-bottom: $switch-margin; outline: 0; // These properties cascade down to the switch text font-size: rem-calc(14); font-weight: bold; color: $white; user-select: none; } /// Adds styles for a switch input. Apply this to an `<input>` within a switch. @mixin switch-input { position: absolute; margin-bottom: 0; opacity: 0; } /// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch. @mixin switch-paddle { $switch-width: $switch-height * 2; $paddle-height: $switch-height - ($switch-paddle-offset * 2); $paddle-width: $switch-height - ($switch-paddle-offset * 2); $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset; position: relative; display: block; width: $switch-width; height: $switch-height; border-radius: $switch-radius; background: $switch-background; transition: $switch-paddle-transition; // Resetting these <label> presets so type styles cascade down font-weight: inherit; color: inherit; cursor: pointer; // Needed to override specificity input + & { margin: 0; } // The paddle itself &::after { position: absolute; top: $switch-paddle-offset; #{$global-left}: $switch-paddle-offset; display: block; width: $paddle-width; height: $paddle-height; transform: translate3d(0, 0, 0); border-radius: $switch-paddle-radius; background: $switch-paddle-background; transition: $switch-paddle-transition; content: ''; } // Change the visual style when the switch is active input:checked ~ & { background: $switch-background-active; &::after { #{$global-left}: $paddle-active-offest; } } input:focus ~ & { @include disable-mouse-outline; } } /// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`. @mixin switch-text { position: absolute; top: 50%; transform: translateY(-50%); } /// Adds styles for the active state text within a switch. @mixin switch-text-active { #{$global-left}: 8%; display: none; input:checked + label > & { display: block; } } /// Adds styles for the inactive state text within a switch. @mixin switch-text-inactive { #{$global-right}: 15%; input:checked + label > & { display: none; } } /// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container. /// @param {Number} $font-size [1rem] - Font size of label text within the switch. /// @param {Number} $switch-height [2rem] - Height of the switch body. /// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body. @mixin switch-size( $font-size: 1rem, $switch-height: 2rem, $paddle-offset: 0.25rem ) { $switch-width: $switch-height * 2; $paddle-width: $switch-height - ($paddle-offset * 2); $paddle-height: $switch-height - ($paddle-offset * 2); $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset; height: $switch-height; .switch-paddle { width: $switch-width; height: $switch-height; font-size: $font-size; } .switch-paddle::after { top: $paddle-offset; #{$global-left}: $paddle-offset; width: $paddle-width; height: $paddle-height; } input:checked ~ .switch-paddle::after { #{$global-left}: $paddle-active-offest; } } @mixin foundation-switch { // Container class .switch { height: $switch-height; @include switch-container; } // <input> element .switch-input { @include switch-input; } // <label> element .switch-paddle { @include switch-paddle; } // Base label text styles %switch-text { @include switch-text; } // Active label text styles .switch-active { @extend %switch-text; @include switch-text-active; } // Inactive label text styles .switch-inactive { @extend %switch-text; @include switch-text-inactive; } // Switch sizes .switch.tiny { @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset); } .switch.small { @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset); } .switch.large { @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset); } }