annotate default/assets/scss/vendors/bourbon/library/_triangle.scss @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 @charset "UTF-8";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 /// Generates a triangle pointing in a specified direction.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 ///
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 /// @argument {string} $direction [up]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 /// The direction the triangle should point. Accepts `up`, `up-right`,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 /// `right`, `down-right`, `down`, `down-left`, `left` or `up-left`.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 ///
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 /// @argument {color} $color [currentColor]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 /// Color of the triangle.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 ///
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 /// @argument {number (with unit)} $width [1rem]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 /// Width of the triangle.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 ///
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 /// @argument {number (with unit)} $height [($width / 2)]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 /// Height of the triangle.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 ///
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 /// @example scss
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 /// .element {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 /// &::before {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 /// @include triangle(up, #b25c9c, 2rem);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 /// content: "";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 /// }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 /// }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 ///
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 /// // CSS Output
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 /// .element::before {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 /// border-style: solid;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 /// height: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 /// width: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 /// border-color: transparent transparent #b25c9c transparent;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 /// border-width: 0 1rem 1rem;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 /// content: "";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 /// }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 @mixin triangle(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 $direction: up,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 $color: currentColor,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 $width: 1rem,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 $height: ($width / 2)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 @if not index(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 "up" "up-right" "right" "down-right" "down" "down-left" "left" "up-left",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 $direction
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 @error "Direction must be `up`, `up-right`, `right`, `down-right`, " +
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 "`down`, `down-left`, `left` or `up-left`.";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 } @else if not _is-color($color) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 @error "`#{$color}` is not a valid color for the `$color` argument in " +
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 "the `triangle` mixin.";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 } @else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 border-style: solid;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 height: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 width: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 @if $direction == "up" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 border-color: transparent transparent $color;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 border-width: 0 ($width / 2) $height;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 } @else if $direction == "up-right" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 border-color: transparent $color transparent transparent;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 border-width: 0 $width $width 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62 } @else if $direction == "right" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 border-color: transparent transparent transparent $color;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 border-width: ($height / 2) 0 ($height / 2) $width;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 } @else if $direction == "down-right" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 border-color: transparent transparent $color;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 border-width: 0 0 $width $width;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 } @else if $direction == "down" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 border-color: $color transparent transparent;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 border-width: $height ($width / 2) 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71 } @else if $direction == "down-left" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 border-color: transparent transparent transparent $color;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73 border-width: $width 0 0 $width;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 } @else if $direction == "left" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 border-color: transparent $color transparent transparent;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76 border-width: ($height / 2) $width ($height / 2) 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77 } @else if $direction == "up-left" {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 border-color: $color transparent transparent;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79 border-width: $width $width 0 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 }