Mga Built-in na Module ng SASS
Ipinaliliwanag ng artikulong ito ang mga built-in na module ng SASS.
Tatalakayin namin ang mga built-in na module ng SASS nang sunod-sunod, mula sa batayan hanggang sa mas advanced na paggamit.
YouTube Video
Mga Built-in na Module ng SASS
Nagbibigay ang SASS ng iba't ibang built-in na module, at mas pinaiigting ng paggamit nito ang kahusayan sa paggawa ng stylesheet.
Ano ang mga built-in na module ng SASS?
Ang mga built-in na module ng SASS ay mga module na naglalaman ng mga reusable na function at mga mixin. Ang paggamit nito ay nagpapadali ng masalimuot na kalkulasyon at paglikha ng mga custom na estilo.
Kabilang sa mga pangunahing built-in na module ang mga sumusunod:.
sass:colorsass:stringsass:mathsass:listsass:mapsass:selectorsass:meta
Bawat module ay may mga tampok na nagpapasimple ng mga tiyak na gawain.
Mga detalye at halimbawa ng bawat module
Ang module na sass:color
Nagbibigay ang sass:color ng mga function na nagpapadali sa pagmamanipula ng kulay.
Pangunahing mga function
mix(): Paghahaluin ang dalawang kulayadjust(): Ayusin ang hue, liwanag, saturation, at iba pang katangian nang sabay-sabay
Halimbawa ng paggamit
1@use "sass:color";
2
3$primary-color: #3498db;
4$secondary-color: #e74c3c;
5
6// Mix two colors with equal weight
7$blended-color: color.mix($primary-color, $secondary-color, 50%);
8
9// Adjust hue by 45 degrees using color.adjust()
10$adjusted-color: color.adjust($primary-color, $hue: 45deg);
11
12div {
13 background-color: $blended-color; // Result of mixing two colors
14 border-color: $adjusted-color; // Hue adjusted by 45 degrees
15}- Gumagawa ang code na ito ng bagong kulay sa pamamagitan ng paghahalo ng dalawang kulay at isa pang kulay na may inayos na hue. Ang mga nabuo na kulay ay inilalapat sa mga elemento bilang mga kulay ng background at border. Tinutulungan ka ng halimbawang ito na maunawaan ang mga pangunahing kaalaman sa pagmamanipula ng kulay.
Ang module na sass:string
Nagbibigay ang sass:string ng mga function na kapaki-pakinabang para sa pagmamanipula ng string.
Pangunahing mga function
quote(),unquote(): Lagyan o tanggalan ng quote ang isang stringlength(): Kunin ang haba ng isang stringto-upper-case(),to-lower-case(): I-convert ang isang string sa upper o lower case
Halimbawa ng paggamit
1@use "sass:string";
2
3// base values
4$base-url: "https://example.com";
5$path: "/assets/style.css";
6
7// 1) Combine strings using interpolation and then quote the result
8$full-quoted: string.quote("#{$base-url}#{$path}");
9// Example result: "\"https://example.com/assets/style.css\""
10
11// 2) Remove quotes from a quoted string
12$full-unquoted: string.unquote($full-quoted);
13// Example result: https://example.com/assets/style.css
14
15// 3) Get the length of the unquoted string
16$url-length: string.length($full-unquoted);
17// Example output: number of characters in the URL
18
19// 4) Convert strings to upper/lower case and quote for safe CSS output
20$block-name: "main-header";
21// "MAIN-HEADER"
22$upper-quoted: string.quote(string.to-upper-case($block-name));
23// "main-footer"
24$lower-quoted: string.quote(string.to-lower-case("MAIN-FOOTER"));
25
26a::after {
27 /* Use quoted strings for content to ensure valid CSS */
28 content: $full-quoted; /* "https://example.com/assets/style.css" */
29}
30
31:root {
32 /* Insert numeric values with interpolation when needed */
33 --url-length: #{ $url-length }; /* Example: --url-length: 31; */
34}
35
36.header::before {
37 /* Output uppercase version */
38 content: $upper-quoted; /* "MAIN-HEADER" */
39}
40
41.footer::after {
42 /* Output lowercase version */
43 content: $lower-quoted; /* "main-footer" */
44}- Sa paggamit ng
string.quote()atstring.unquote(), maaari mong kontrolin nang eksakto ang representasyon ng string sa output na CSS. Angstring.length()ay isang function na kumukuha ng haba ng isang string. Angstring.to-upper-case()/string.to-lower-case()ay kapaki-pakinabang sa pagbuo ng mga pangalan ng class at pag-format ng mga pangalang BEM.
Ang module na sass:math
Nagbibigay ang sass:math ng mga function para sa mga kalkulasyong matematikal.
Pangunahing mga function
pow(): Eksponentiationsqrt(): Ugat na parisukatabs(): Ganap na halagaround(),ceil(),floor(): Mag-round, i-round pataas, i-round pababa
Halimbawa ng paggamit
1@use "sass:math";
2
3// Using pow() to calculate exponential values
4$base-size: math.pow(2, 3) * 10px; // 80px
5
6// Using sqrt() to compute a square root
7$root-size: math.sqrt(144) * 1px; // 12px
8
9// Using abs() to ensure a positive value
10$offset: math.abs(-15px); // 15px
11
12// Using round(), ceil(), and floor() for different rounding methods
13$rounded: math.round(12.6px); // 13px
14$ceiled: math.ceil(12.1px); // 13px
15$floored: math.floor(12.9px); // 12px
16
17.container {
18 width: $base-size; // 80px
19 height: $root-size; // 12px
20 margin-left: $offset; // 15px
21}
22
23.values {
24 /* Demonstrating different rounding operations */
25 padding: $rounded; // 13px
26 border-width: $ceiled; // 13px
27 margin-top: $floored; // 12px
28}- Ang
math.pow()atmath.sqrt()ay kapaki-pakinabang para sa mga kalkulasyon ng sukat, habang angmath.abs()at ang mga rounding function ay tumutulong sa paghawak ng mga pagsasaayos. Ang pagsasama-sama ng mga ito ay nagpapadali sa pagkalkula ng magkakapare-parehong sukat ng UI.
Ang module na sass:list
Nagbibigay ang sass:list ng mga function na espesyalisado para sa mga operasyong pang-listahan.
Pangunahing mga function
append(): Magdagdag ng mga elementojoin(): Pagsamahin ang mga listahannth(): Kunin ang elemento sa ibinigay na posisyonlength(): Kunin ang haba ng isang listahan
Halimbawa ng paggamit
1@use "sass:list";
2
3// Base list
4$colors: ("red", "blue", "green");
5
6// Add an element to the end of the list
7$colors-appended: list.append($colors, "yellow");
8// ("red", "blue", "green", "yellow")
9
10// Add an element to the beginning of the list using join()
11$colors-prepended: list.join(("black",), $colors);
12// ("black", "red", "blue", "green", "yellow")
13
14// Join two lists together
15$extra-colors: ("pink", "cyan");
16$merged-colors: list.join($colors-prepended, $extra-colors);
17// ("black", "red", "blue", "green", "yellow", "pink", "cyan")
18
19// Get list length
20$total-length: list.length($merged-colors);
21
22// Example usage in a loop: assign each color to a list item
23ul {
24 @for $i from 1 through $total-length {
25 li:nth-child(#{$i}) {
26 /* Get the color at index $i */
27 color: list.nth($merged-colors, $i);
28 }
29 }
30}- Maaari kang magdagdag ng mga elemento sa dulo ng isang listahan gamit ang
append(), at gamitin angjoin()upang flexible na pagsamahin ang maraming mga listahan. Kung gusto mong magdagdag ng elemento sa simula, magagawa mo ito sa pamamagitan ng pagsali ng listahang may isang elemento sa unahan gamit angjoin(). Sa pamamagitan ng pagsasama nglength()atnth(), mas nagiging madali ang paggawa ng mga UI style na nangangailangan ng dynamic na pagproseso ng listahan.
Ang module na sass:map
Nagbibigay ang sass:map ng mga function para magtrabaho sa mga map (associative array).
Pangunahing mga function
get(): Kunin ang halaga para sa isang keyset(): Magdagdag o mag-update ng key-value na pareskeys(): Kunin ang lahat ng key
Halimbawa ng paggamit
1@use "sass:map";
2
3// Base theme map
4$theme-colors: (
5 "primary": #3498db,
6 "secondary": #e74c3c
7);
8
9// Update or add a value using set()
10$updated-theme: map.set($theme-colors, "warning", #f1c40f);
11// Map now has "warning": #f1c40f added
12
13// Get a value from the map
14$primary-color: map.get($updated-theme, "primary");
15
16// Get all keys from the map
17$all-keys: map.keys($updated-theme);
18// Example: ("primary", "secondary", "warning")
19
20button {
21 /* Apply color retrieved from the theme map */
22 background-color: $primary-color;
23}
24
25.debug {
26 /* Print keys as content for demonstration */
27 content: "#{$all-keys}";
28}- Sa paggamit ng
map.set(), maaari mong i-update ang mga map nang dinamiko, at kapag pinagsama samap.get()makakabuo ka ng mga flexible na istruktura ng tema. Samap.keys()maaari mong ilista ang mga entry ng configuration, na nakatutulong sa pagdisenyo ng mga istilong madaling palawakin.
Ang module na sass:selector
Nagbibigay ang sass:selector ng mga function na kapaki-pakinabang para sa pagmamanipula ng selector.
Pangunahing mga function
nest(): I-nest ang mga selectoris-superselector(): Suriin ang pagsaklaw ng selectorreplace(): Palitan ang mga selector
Halimbawa ng paggamit
1@use "sass:selector";
2
3// Nest selectors (combine parent and child)
4$nested-selector: selector.nest(".parent", ".child");
5// Result: ".parent .child"
6
7// Check if one selector is a superselector of another
8$is-super: selector.is-superselector(".parent", $nested-selector);
9// true because ".parent" matches all elements that
10// ".parent .child" can match as an ancestor
11
12// Replace part of a selector with another selector
13$replaced-selector: selector.replace(".parent .child", ".child", ".item");
14// Result: ".parent .item"
15
16// Use generated selectors in actual CSS output
17#{$nested-selector} {
18 /* Applies to .parent .child */
19 color: red;
20}
21
22@if $is-super {
23 .info::after {
24 /* Demonstrate boolean result */
25 content: "parent is a superselector";
26 }
27}
28
29#{$replaced-selector} {
30 /* Applies to .parent .item */
31 background: blue;
32}- Gamitin ang
selector.nest()para malayang bumuo ng mga selector at angselector.is-superselector()para beripikahin ang ugnayan ng mga ito. Pagsamahin saselector.replace()upang mas maikli mong mahawakan ang mas advanced na lohika sa pagbuo ng selector.
Ang module na sass:meta
Nagbibigay ang sass:meta ng mga tampok na kapaki-pakinabang para sa meta-programming sa SASS.
Pangunahing mga function
variable-exists(): Suriin kung umiiral ang isang variableglobal-variable-exists(): Suriin kung umiiral ang isang global na variableinspect(): Ipakita ang halaga para sa pag-debug
Halimbawa ng paggamit
1@use "sass:meta";
2
3// Define a global variable
4$color: #3498db;
5
6// Check if a variable exists in the current scope
7@if meta.variable-exists("color") {
8 body {
9 /* Apply style only if $color exists */
10 background-color: $color;
11 }
12}
13
14// Create a local variable inside a block
15.container {
16 $local-size: 20px;
17
18 @if meta.variable-exists("local-size") {
19 /* Demonstrates detection of local variable */
20 width: $local-size;
21 }
22}
23
24// Check if a global variable exists
25$result: meta.global-variable-exists("color"); // true
26
27.debug {
28 /* Use inspect() to output the inspected value as a string */
29 content: meta.inspect($result); // "true"
30}- Ang
meta.variable-exists()atmeta.global-variable-exists()ay nagbibigay-daan upang ligtas mong matukoy ang estado ng mga variable kada saklaw. Angmeta.inspect()ay napakakapaki-pakinabang para sa pag-debug at maaaring magpakita ng mga halaga bilang mga string.
Praktikal na halimbawa
Ang pagsasama ng maraming built-in na module ay lalo pang pinahuhusay ang ekspresibidad ng SASS. Nasa ibaba ang isang halimbawa na sabay na gumagamit ng mga module na color, math, at list upang awtomatikuhin ang pagproseso ng kulay at mga operasyong pang-listahan.
1@use "sass:color";
2@use "sass:math";
3@use "sass:list";
4
5// Base color list
6$base-colors: (#3498db, #e74c3c, #2ecc71);
7$darkened-colors: (); // Empty list for processed colors
8
9// Loop through each base color and darken it by 10%
10@each $color in $base-colors {
11 $darkened-colors: list.append(
12 $darkened-colors,
13 // Darken color by decreasing lightness by 10%
14 color.adjust($color, $lightness: -10%)
15 );
16}
17
18div {
19 // Apply each processed color to a corresponding <div>
20 @for $i from 1 through list.length($darkened-colors) {
21 &:nth-child(#{$i}) {
22 // Set color by index
23 background-color: list.nth($darkened-colors, $i);
24 }
25 }
26}- Sa code na ito, ang mga na-prosesong kulay ay idinadagdag ng sunud-sunod gamit ang
list.append(), at angcolor.adjust()na may$lightness: -10%ay ginagamit upang padilimin ang mga kulay ng 10%. Sa huli, pinagsasama ang@foratlist.nth()upang maglapat ng magkakaibang kulay ng background sa bawat<div>.
Buod
Malaki ang naidudulot na pagiging nababaluktot sa CSS ng mga built-in na module ng SASS. Sa pag-unawa sa bawat module at wastong paggamit nito, makalilikha ka ng mas episyente at mas madaling panatilihing mga stylesheet.
Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.