vanilla-framework 4.48.0 → 4.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scss/_base_icon-definitions.scss +171 -0
- package/scss/_patterns_content-card.scss +221 -119
- package/scss/_patterns_icons.scss +94 -1
- package/templates/_macros/vf_card.jinja +56 -59
package/package.json
CHANGED
|
@@ -1649,3 +1649,174 @@
|
|
|
1649
1649
|
@mixin vf-icon-circle-of-friends-themed {
|
|
1650
1650
|
@include vf-themed-icon($light-value: vf-icon-circle-of-friends-url($colors--light-theme--icon), $dark-value: vf-icon-circle-of-friends-url($colors--dark-theme--icon));
|
|
1651
1651
|
}
|
|
1652
|
+
|
|
1653
|
+
// ICONS ADDED IN APRIL 2026 v4.49.0
|
|
1654
|
+
|
|
1655
|
+
// devtools
|
|
1656
|
+
@function vf-icon-devtools-url($color) {
|
|
1657
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M10.414 3.469 14.04 8l-3.625 4.531 1.172.938L15.96 8l-4.375-5.469zM.04 8l4.374 5.469 1.172-.938L1.96 8l3.625-4.531-1.172-.938z'/%3E%3C/svg%3E");
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
@mixin vf-icon-devtools($color: $colors--light-theme--icon) {
|
|
1661
|
+
background-image: vf-icon-devtools-url($color);
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
@mixin vf-icon-devtools-themed {
|
|
1665
|
+
@include vf-themed-icon($light-value: vf-icon-devtools-url($colors--light-theme--icon), $dark-value: vf-icon-devtools-url($colors--dark-theme--icon));
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
// devtools-off
|
|
1669
|
+
@function vf-icon-devtools-off-url($color) {
|
|
1670
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='m14.78 2.28-1.886 1.886L15.96 8l-4.375 5.469-1.172-.938L14.04 8l-2.213-2.767L2.28 14.78l-1.06-1.06 12.5-12.5zM5.586 3.469 1.96 8l1.323 1.654-1.067 1.068L.039 8l4.375-5.469z'/%3E%3C/svg%3E");
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
@mixin vf-icon-devtools-off($color: $colors--light-theme--icon) {
|
|
1674
|
+
background-image: vf-icon-devtools-off-url($color);
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
@mixin vf-icon-devtools-off-themed {
|
|
1678
|
+
@include vf-themed-icon($light-value: vf-icon-devtools-off-url($colors--light-theme--icon), $dark-value: vf-icon-devtools-off-url($colors--dark-theme--icon));
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
// keyboard
|
|
1682
|
+
@function vf-icon-keyboard-url($color) {
|
|
1683
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M5.5 10a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM12.5 7.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5zM10.25 7.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5zM8 7.5a.5.5 0 0 0-.5.5v.5A.5.5 0 0 0 8 9h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5zM5.5 7.5A.5.5 0 0 0 5 8v.5a.5.5 0 0 0 .5.5H6a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5zM3 7.5a.5.5 0 0 0-.5.5v.5A.5.5 0 0 0 3 9h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5zM12.5 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5A.5.5 0 0 0 13 5zM10.25 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM8 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5h.5A.5.5 0 0 0 9 6v-.5a.5.5 0 0 0-.5-.5zM5.5 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5H6a.5.5 0 0 0 .5-.5v-.5A.5.5 0 0 0 6 5zM3 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5h.5A.5.5 0 0 0 4 6v-.5a.5.5 0 0 0-.5-.5z'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M1.5 2A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2zm13 10.5h-13v-9h13z' clip-rule='evenodd'/%3E%3C/svg%3E");
|
|
1684
|
+
}
|
|
1685
|
+
|
|
1686
|
+
@mixin vf-icon-keyboard($color: $colors--light-theme--icon) {
|
|
1687
|
+
background-image: vf-icon-keyboard-url($color);
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
@mixin vf-icon-keyboard-themed {
|
|
1691
|
+
@include vf-themed-icon($light-value: vf-icon-keyboard-url($colors--light-theme--icon), $dark-value: vf-icon-keyboard-url($colors--dark-theme--icon));
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
// keyboard-off
|
|
1695
|
+
@function vf-icon-keyboard-off-url($color) {
|
|
1696
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cg fill='#{vf-url-friendly-color($color)}' clip-path='url(%23a)'%3E%3Cpath d='M12.5 7.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5z'/%3E%3Cpath fill-rule='evenodd' d='m.97 14.47 1.06 1.06L3.56 14H14.5a1.5 1.5 0 0 0 1.5-1.5v-9a1.5 1.5 0 0 0-.682-1.258l.712-.712L14.97.47zM14.5 3.5v9H5.06l1-1h4.44a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5H7.56l2.27-2.27a.5.5 0 0 0-.08.27v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5h-.5c-.099 0-.19.03-.269.08L12 5.56V6a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5A.5.5 0 0 0 13 5h-.44l1.5-1.5z' clip-rule='evenodd'/%3E%3Cpath d='M1.5 2A1.5 1.5 0 0 0 0 3.5v9c0 .27.072.523.197.742L1.5 11.94V3.5h8.44l1.5-1.5z'/%3E%3Cpath d='M3 7.5a.5.5 0 0 0-.5.5v.5A.5.5 0 0 0 3 9h.5a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5zM5.5 7.5A.5.5 0 0 0 5 8v.44l.94-.94zM5.5 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5H6a.5.5 0 0 0 .5-.5v-.5A.5.5 0 0 0 6 5zM3 5a.5.5 0 0 0-.5.5V6a.5.5 0 0 0 .5.5h.5A.5.5 0 0 0 4 6v-.5a.5.5 0 0 0-.5-.5zM8 5a.5.5 0 0 0-.5.5v.44L8.44 5z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M16 0H0v16h16z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
@mixin vf-icon-keyboard-off($color: $colors--light-theme--icon) {
|
|
1700
|
+
background-image: vf-icon-keyboard-off-url($color);
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
@mixin vf-icon-keyboard-off-themed {
|
|
1704
|
+
@include vf-themed-icon($light-value: vf-icon-keyboard-off-url($colors--light-theme--icon), $dark-value: vf-icon-keyboard-off-url($colors--dark-theme--icon));
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
// resize
|
|
1708
|
+
@function vf-icon-resize-url($color) {
|
|
1709
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M2.5 15H1v-1.5h1.5zM5.375 15h-1.75v-1.5h1.75zM8.875 15h-1.75v-1.5h1.75z'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M5.75 2.5H3.56l9.94 9.94v-2.19H15V15h-4.75v-1.5h2.19L2.5 3.56v2.19H1V1h4.75zM2.5 12.375H1v-1.75h1.5z'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M2.5 8.875H1v-1.75h1.5zM15 8.875h-1.5v-1.75H15zM15 5.375h-1.5v-1.75H15zM8.875 2.5h-1.75V1h1.75zM12.375 2.5h-1.75V1h1.75zM15 2.5h-1.5V1H15z'/%3E%3C/svg%3E");
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1712
|
+
@mixin vf-icon-resize($color: $colors--light-theme--icon) {
|
|
1713
|
+
background-image: vf-icon-resize-url($color);
|
|
1714
|
+
}
|
|
1715
|
+
|
|
1716
|
+
@mixin vf-icon-resize-themed {
|
|
1717
|
+
@include vf-themed-icon($light-value: vf-icon-resize-url($colors--light-theme--icon), $dark-value: vf-icon-resize-url($colors--dark-theme--icon));
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
// resize-off
|
|
1721
|
+
@function vf-icon-resize-off-url($color) {
|
|
1722
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cg fill='#{vf-url-friendly-color($color)}' clip-path='url(%23a)'%3E%3Cpath d='m16.03 1.53-2.095 2.095H15v1.75h-1.5V4.061L9.31 8.25l4.19 4.19v-2.19H15V15h-4.75v-1.5h2.19L8.25 9.31 4.06 13.5h1.315V15h-1.75v-1.065L2.03 15.53.97 14.47l14-14z'/%3E%3Cpath d='M8.875 15h-1.75v-1.5h1.75zM2.5 10.94l-1.436 1.435H1v-1.75h1.5zM2.5 8.875H1v-1.75h1.5zM15 8.875h-1.5v-1.75H15zM5.75 2.5H3.56l3.69 3.69-1.06 1.06L2.5 3.56v2.19H1V1h4.75zM8.875 2.5h-1.75V1h1.75zM12.375 1.064 10.94 2.5h-.315V1h1.75z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M0 0h16v16H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1725
|
+
@mixin vf-icon-resize-off($color: $colors--light-theme--icon) {
|
|
1726
|
+
background-image: vf-icon-resize-off-url($color);
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
@mixin vf-icon-resize-off-themed {
|
|
1730
|
+
@include vf-themed-icon($light-value: vf-icon-resize-off-url($colors--light-theme--icon), $dark-value: vf-icon-resize-off-url($colors--dark-theme--icon));
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
// rotate-left
|
|
1734
|
+
@function vf-icon-rotate-left-url($color) {
|
|
1735
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M3.682 5.56a1.5 1.5 0 0 1 2.12 0l4.951 4.95a1.5 1.5 0 0 1 0 2.122l-2.121 2.12a1.5 1.5 0 0 1-2.008.103l-.113-.102-4.95-4.95a1.5 1.5 0 0 1 0-2.121zm-1.06 3.182 4.95 4.95 2.12-2.12-4.95-4.95z' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M10.03 1.53 8.81 2.75H10a4.75 4.75 0 0 1 4.75 4.75v2h-1.5v-2A3.25 3.25 0 0 0 10 4.25H8.81l1.22 1.22-1.06 1.06L5.94 3.5 8.97.47z'/%3E%3C/svg%3E");
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
@mixin vf-icon-rotate-left($color: $colors--light-theme--icon) {
|
|
1739
|
+
background-image: vf-icon-rotate-left-url($color);
|
|
1740
|
+
}
|
|
1741
|
+
|
|
1742
|
+
@mixin vf-icon-rotate-left-themed {
|
|
1743
|
+
@include vf-themed-icon($light-value: vf-icon-rotate-left-url($colors--light-theme--icon), $dark-value: vf-icon-rotate-left-url($colors--dark-theme--icon));
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
// rotate-right
|
|
1747
|
+
@function vf-icon-rotate-right-url($color) {
|
|
1748
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M12.318 5.56a1.5 1.5 0 0 0-2.12 0l-4.951 4.95a1.5 1.5 0 0 0 0 2.122l2.121 2.12a1.5 1.5 0 0 0 2.008.103l.113-.102 4.95-4.95a1.5 1.5 0 0 0 0-2.121zm1.06 3.182-4.95 4.95-2.12-2.12 4.95-4.95z' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='m5.97 1.53 1.22 1.22H6A4.75 4.75 0 0 0 1.25 7.5v2h1.5v-2A3.25 3.25 0 0 1 6 4.25h1.19L5.97 5.47l1.06 1.06 3.03-3.03L7.03.47z'/%3E%3C/svg%3E");
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
@mixin vf-icon-rotate-right($color: $colors--light-theme--icon) {
|
|
1752
|
+
background-image: vf-icon-rotate-right-url($color);
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1755
|
+
@mixin vf-icon-rotate-right-themed {
|
|
1756
|
+
@include vf-themed-icon($light-value: vf-icon-rotate-right-url($colors--light-theme--icon), $dark-value: vf-icon-rotate-right-url($colors--dark-theme--icon));
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
// screen-record-start
|
|
1760
|
+
@function vf-icon-screen-record-start-url($color) {
|
|
1761
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M13.5 10.25v3.25h-3.25V15h3.25a1.5 1.5 0 0 0 1.5-1.5v-3.25zM1 13.5A1.5 1.5 0 0 0 2.5 15h3.25v-1.5H2.5v-3.25H1zM8 6a2 2 0 1 0 0 4 2 2 0 0 0 0-4'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M8 3.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M8 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M10.25 2.5h3.25v3.25H15V2.5A1.5 1.5 0 0 0 13.5 1h-3.25zM2.5 1A1.5 1.5 0 0 0 1 2.5v3.25h1.5V2.5h3.25V1z'/%3E%3C/svg%3E");
|
|
1762
|
+
}
|
|
1763
|
+
|
|
1764
|
+
@mixin vf-icon-screen-record-start($color: $colors--light-theme--icon) {
|
|
1765
|
+
background-image: vf-icon-screen-record-start-url($color);
|
|
1766
|
+
}
|
|
1767
|
+
|
|
1768
|
+
@mixin vf-icon-screen-record-start-themed {
|
|
1769
|
+
@include vf-themed-icon($light-value: vf-icon-screen-record-start-url($colors--light-theme--icon), $dark-value: vf-icon-screen-record-start-url($colors--dark-theme--icon));
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
// screen-record-stop
|
|
1773
|
+
@function vf-icon-screen-record-stop-url($color) {
|
|
1774
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M13.5 13.5h-3.25V15h3.25a1.5 1.5 0 0 0 1.5-1.5v-3.25h-1.5zM1 13.5A1.5 1.5 0 0 0 2.5 15h3.25v-1.5H2.5v-3.25H1z'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M5.5 4A1.5 1.5 0 0 0 4 5.5v5a1.5 1.5 0 0 0 1.347 1.492L5.5 12h5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 10.5 4zm5 1.5v5h-5v-5z' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M10.25 2.5h3.25v3.25H15V2.5A1.5 1.5 0 0 0 13.5 1h-3.25zM2.5 1A1.5 1.5 0 0 0 1 2.5v3.25h1.5V2.5h3.25V1z'/%3E%3C/svg%3E");
|
|
1775
|
+
}
|
|
1776
|
+
|
|
1777
|
+
@mixin vf-icon-screen-record-stop($color: $colors--light-theme--icon) {
|
|
1778
|
+
background-image: vf-icon-screen-record-stop-url($color);
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
@mixin vf-icon-screen-record-stop-themed {
|
|
1782
|
+
@include vf-themed-icon($light-value: vf-icon-screen-record-stop-url($colors--light-theme--icon), $dark-value: vf-icon-screen-record-stop-url($colors--dark-theme--icon));
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1785
|
+
// screenshot
|
|
1786
|
+
@function vf-icon-screenshot-url($color) {
|
|
1787
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M13.5 10.25v3.25h-3.25V15h3.5c.69 0 1.25-.56 1.25-1.25v-3.5zM1 13.75c0 .69.56 1.25 1.25 1.25h3.5v-1.5H2.5v-3.25H1zM8 7a1 1 0 1 0 0 2 1 1 0 0 0 0-2'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M6.854 3.5a.88.88 0 0 0-.773.455L5.5 5H5a1.5 1.5 0 0 0-1.5 1.5V10A1.5 1.5 0 0 0 5 11.5h6a1.5 1.5 0 0 0 1.5-1.5V6.5A1.5 1.5 0 0 0 11 5h-.5l-.58-1.045a.89.89 0 0 0-.774-.455zm2.763 3H11V10H5V6.5h1.382L7.216 5h1.568z' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M10.25 2.5h3.25v3.25H15v-3.5C15 1.56 14.44 1 13.75 1h-3.5zM2.25 1C1.56 1 1 1.56 1 2.25v3.5h1.5V2.5h3.25V1z'/%3E%3C/svg%3E");
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
@mixin vf-icon-screenshot($color: $colors--light-theme--icon) {
|
|
1791
|
+
background-image: vf-icon-screenshot-url($color);
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
@mixin vf-icon-screenshot-themed {
|
|
1795
|
+
@include vf-themed-icon($light-value: vf-icon-screenshot-url($colors--light-theme--icon), $dark-value: vf-icon-screenshot-url($colors--dark-theme--icon));
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
// volume-down
|
|
1799
|
+
@function vf-icon-volume-down-url($color) {
|
|
1800
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M6.342 2.451C6.988 1.886 8 2.345 8 3.204v9.592c0 .859-1.012 1.318-1.658.753l-2.913-2.55H1.5A1.5 1.5 0 0 1 0 9.5v-3A1.5 1.5 0 0 1 1.5 5h1.929zM3.992 6.5H1.5v3h2.492L6.5 11.694v-7.39z' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M16 8.75h-6v-1.5h6z'/%3E%3C/svg%3E");
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
@mixin vf-icon-volume-down($color: $colors--light-theme--icon) {
|
|
1804
|
+
background-image: vf-icon-volume-down-url($color);
|
|
1805
|
+
}
|
|
1806
|
+
|
|
1807
|
+
@mixin vf-icon-volume-down-themed {
|
|
1808
|
+
@include vf-themed-icon($light-value: vf-icon-volume-down-url($colors--light-theme--icon), $dark-value: vf-icon-volume-down-url($colors--dark-theme--icon));
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
// volume-up
|
|
1812
|
+
@function vf-icon-volume-up-url($color) {
|
|
1813
|
+
@return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd' d='M6.342 2.451C6.988 1.886 8 2.345 8 3.204v9.592c0 .859-1.012 1.318-1.658.753l-2.913-2.55H1.5A1.5 1.5 0 0 1 0 9.5v-3A1.5 1.5 0 0 1 1.5 5h1.929zM3.992 6.5H1.5v3h2.492L6.5 11.694v-7.39z' clip-rule='evenodd'/%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M13.745 7.25H16v1.5h-2.255v2.255h-1.5V8.75H10v-1.5h2.245V5.005h1.5z'/%3E%3C/svg%3E");
|
|
1814
|
+
}
|
|
1815
|
+
|
|
1816
|
+
@mixin vf-icon-volume-up($color: $colors--light-theme--icon) {
|
|
1817
|
+
background-image: vf-icon-volume-up-url($color);
|
|
1818
|
+
}
|
|
1819
|
+
|
|
1820
|
+
@mixin vf-icon-volume-up-themed {
|
|
1821
|
+
@include vf-themed-icon($light-value: vf-icon-volume-up-url($colors--light-theme--icon), $dark-value: vf-icon-volume-up-url($colors--dark-theme--icon));
|
|
1822
|
+
}
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
Content card:
|
|
5
5
|
.p-content-card:
|
|
6
6
|
Main element of the content card component.
|
|
7
|
-
"&.p-content-card--2
|
|
7
|
+
"&.p-content-card--cols-2":
|
|
8
8
|
Modifier for a 2-column width vertical layout. Applied ONLY to the parent .p-content-card.
|
|
9
|
-
"&.p-content-card--4
|
|
9
|
+
"&.p-content-card--cols-4":
|
|
10
10
|
Modifier for a 4-column width horizontal layout. Applied ONLY to the parent .p-content-card.
|
|
11
|
-
"&.p-content-card--6
|
|
11
|
+
"&.p-content-card--cols-6":
|
|
12
12
|
Modifier for a 6-column width horizontal layout. Applied ONLY to the parent .p-content-card.
|
|
13
|
-
"&.
|
|
13
|
+
"&.has-image":
|
|
14
14
|
State class applied to the parent when the card includes an image.
|
|
15
|
-
"&.
|
|
15
|
+
"&.has-desc":
|
|
16
16
|
State class applied to the parent when the card includes a description that appears on hover.
|
|
17
17
|
Links:
|
|
18
18
|
.p-content-card__overlay-link:
|
|
@@ -54,72 +54,170 @@
|
|
|
54
54
|
|
|
55
55
|
@import 'settings';
|
|
56
56
|
|
|
57
|
+
// =========================================
|
|
58
|
+
// CONTENT CARD VARIABLES
|
|
59
|
+
// =========================================
|
|
60
|
+
$card-height-vertical: 23.75rem; // 380px
|
|
61
|
+
$card-height-default: 12rem; // 192px
|
|
62
|
+
|
|
63
|
+
$card-image-width: 17.75rem; // 284px
|
|
64
|
+
// Horizontal image heights are explicit to preserve the tuned text/image balance at each breakpoint
|
|
65
|
+
$card-image-height-horizontal: 9.703125rem; // 155.25px
|
|
66
|
+
$card-image-height-horizontal-large: 9.984375rem; // 159.75px
|
|
67
|
+
|
|
68
|
+
// Horizontal card heights are image height plus vertical spacing budget.
|
|
69
|
+
$card-height-horizontal: $card-image-height-horizontal + $sp-x-large;
|
|
70
|
+
$card-height-horizontal-large: $card-image-height-horizontal-large + $sp-x-large;
|
|
71
|
+
|
|
72
|
+
$card-footer-outer-height: $sp-x-large + ($sp-small * 0.5);
|
|
73
|
+
$card-footer-inner-height: $sp-x-large - ($sp-small * 0.5);
|
|
74
|
+
|
|
75
|
+
$card-nudge-negative: map-get($settings-text-h4, nudge);
|
|
76
|
+
$card-chip-margin-right: 1.5625rem; // 25px
|
|
77
|
+
$card-author-padding-bottom: $sp-small;
|
|
78
|
+
|
|
79
|
+
$card-fallback-spacing-large: $sp-x-large;
|
|
80
|
+
$card-fallback-image-gap: $sp-small + $sp-xx-small;
|
|
81
|
+
|
|
82
|
+
@mixin mq-min($breakpoint) {
|
|
83
|
+
@media screen and (width >= $breakpoint) {
|
|
84
|
+
@content;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@mixin mq-max($breakpoint) {
|
|
89
|
+
@media screen and (width < $breakpoint) {
|
|
90
|
+
@content;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@mixin mq-between($min, $max) {
|
|
95
|
+
@media screen and ($min <= width < $max) {
|
|
96
|
+
@content;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
57
100
|
@mixin vf-p-content-card {
|
|
101
|
+
/* =========================================
|
|
102
|
+
GRID WRAPPER
|
|
103
|
+
(Handles spanning and invisible bottom spacing)
|
|
104
|
+
========================================= */
|
|
105
|
+
.p-content-card-wrapper {
|
|
106
|
+
display: flex;
|
|
107
|
+
flex-direction: column;
|
|
108
|
+
height: 100%;
|
|
109
|
+
padding-bottom: var(--spacing-vertical-large, $card-fallback-spacing-large);
|
|
110
|
+
width: 100%;
|
|
111
|
+
|
|
112
|
+
/* 2-Column Spanning */
|
|
113
|
+
&--2 {
|
|
114
|
+
grid-column: 1 / -1; /* Mobile */
|
|
115
|
+
@include mq-between($breakpoint-small, $breakpoint-large) {
|
|
116
|
+
grid-column: span 2; /* Medium */
|
|
117
|
+
}
|
|
118
|
+
@include mq-min($breakpoint-large) {
|
|
119
|
+
grid-column: span 2; /* Desktop */
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* 4-Column Spanning */
|
|
124
|
+
&--4 {
|
|
125
|
+
grid-column: 1 / -1;
|
|
126
|
+
@include mq-min($breakpoint-large) {
|
|
127
|
+
grid-column: span 4;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* 6-Column Spanning */
|
|
132
|
+
&--6 {
|
|
133
|
+
grid-column: 1 / -1;
|
|
134
|
+
@include mq-min($breakpoint-large) {
|
|
135
|
+
grid-column: span 6;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* =========================================
|
|
141
|
+
CARD COMPONENT
|
|
142
|
+
========================================= */
|
|
58
143
|
.p-content-card {
|
|
59
144
|
align-items: flex-start;
|
|
60
145
|
border: 1px solid var(--color-border-low-contrast, rgba(0, 0, 0, 0.1));
|
|
61
146
|
display: flex;
|
|
147
|
+
flex: 1;
|
|
62
148
|
flex-direction: column;
|
|
63
|
-
height:
|
|
149
|
+
height: 100%;
|
|
64
150
|
justify-content: space-between;
|
|
151
|
+
max-width: 100%;
|
|
152
|
+
|
|
153
|
+
min-height: $card-height-vertical;
|
|
65
154
|
overflow: hidden;
|
|
66
155
|
padding-top: var(--spacing-vertical-large, $sp-medium);
|
|
67
156
|
position: relative;
|
|
68
157
|
text-decoration: none !important;
|
|
69
158
|
transition: all 0.4s ease-in-out;
|
|
70
|
-
width:
|
|
159
|
+
width: 100%;
|
|
71
160
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
align-self: stretch;
|
|
77
|
-
flex-direction: row;
|
|
78
|
-
gap: $sp-medium; /* 16px */
|
|
79
|
-
height: 11.703125rem; /* 187.25px */
|
|
80
|
-
padding: $sp-medium $sp-medium 0;
|
|
81
|
-
width: var(--size-width-grid-col-4, 37.5rem); /* 600px */
|
|
82
|
-
}
|
|
161
|
+
&:not(.has-image) {
|
|
162
|
+
height: $card-height-default;
|
|
163
|
+
min-height: $card-height-default;
|
|
164
|
+
}
|
|
83
165
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
166
|
+
/* Shrink-to-fit for cards without footers on mobile */
|
|
167
|
+
@include mq-max($breakpoint-small) {
|
|
168
|
+
&:not(:has(.p-content-card__footer-outer)) {
|
|
169
|
+
height: auto;
|
|
170
|
+
min-height: 0;
|
|
171
|
+
padding-bottom: var(--spacing-vertical-large, $sp-medium); /* Keeps spacing balanced */
|
|
87
172
|
}
|
|
173
|
+
}
|
|
88
174
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
175
|
+
/* 2-Column Modifier Internal Resets */
|
|
176
|
+
&.p-content-card--cols-2 {
|
|
177
|
+
@include mq-between($breakpoint-small, $breakpoint-large) {
|
|
178
|
+
.p-content-card__author-and-date {
|
|
179
|
+
display: none !important;
|
|
180
|
+
}
|
|
94
181
|
}
|
|
95
182
|
}
|
|
96
183
|
|
|
97
|
-
|
|
98
|
-
|
|
184
|
+
/* 4 and 6 Column Horizontal Cards (Medium/Large Screens) */
|
|
185
|
+
@include mq-min($breakpoint-small) {
|
|
186
|
+
&.p-content-card--cols-4,
|
|
187
|
+
&.p-content-card--cols-6 {
|
|
99
188
|
align-items: flex-start;
|
|
100
189
|
align-self: stretch;
|
|
190
|
+
|
|
191
|
+
flex: 0 0 auto;
|
|
101
192
|
flex-direction: row;
|
|
102
|
-
gap: $sp-medium;
|
|
103
|
-
height:
|
|
193
|
+
gap: $sp-medium;
|
|
194
|
+
height: $card-height-horizontal;
|
|
195
|
+
|
|
196
|
+
max-width: 100%;
|
|
197
|
+
min-height: $card-height-horizontal;
|
|
104
198
|
padding: $sp-medium $sp-medium 0;
|
|
105
|
-
width: var(--size-width-grid-col-4, 37.5rem); /* 600px */
|
|
106
199
|
}
|
|
107
200
|
|
|
108
|
-
&.p-content-card--
|
|
109
|
-
|
|
201
|
+
&.p-content-card--cols-4:not(.has-image),
|
|
202
|
+
&.p-content-card--cols-6:not(.has-image) {
|
|
203
|
+
height: $card-height-default;
|
|
204
|
+
min-height: $card-height-default;
|
|
110
205
|
}
|
|
111
206
|
|
|
112
|
-
&.p-content-card--
|
|
207
|
+
&.p-content-card--cols-4:not(.has-image) .p-rule--muted,
|
|
208
|
+
&.p-content-card--cols-6:not(.has-image) .p-rule--muted {
|
|
113
209
|
margin-left: -$sp-medium;
|
|
114
210
|
margin-right: -$sp-medium;
|
|
115
|
-
width:
|
|
211
|
+
max-width: none;
|
|
212
|
+
width: calc(100% + (#{$sp-medium} * 2));
|
|
116
213
|
}
|
|
117
214
|
}
|
|
118
215
|
|
|
119
|
-
@
|
|
120
|
-
&.p-content-card--6
|
|
121
|
-
height:
|
|
122
|
-
width:
|
|
216
|
+
@include mq-min($breakpoint-large) {
|
|
217
|
+
&.p-content-card--cols-6 {
|
|
218
|
+
height: $card-height-horizontal-large;
|
|
219
|
+
max-width: 100%;
|
|
220
|
+
min-height: $card-height-horizontal-large;
|
|
123
221
|
}
|
|
124
222
|
}
|
|
125
223
|
|
|
@@ -139,6 +237,11 @@
|
|
|
139
237
|
overflow: hidden;
|
|
140
238
|
text-decoration: none !important;
|
|
141
239
|
|
|
240
|
+
.p-content-card--cols-6 & {
|
|
241
|
+
-webkit-line-clamp: 2;
|
|
242
|
+
line-clamp: 2;
|
|
243
|
+
}
|
|
244
|
+
|
|
142
245
|
&:hover,
|
|
143
246
|
&:focus,
|
|
144
247
|
&:active,
|
|
@@ -174,9 +277,15 @@
|
|
|
174
277
|
text-wrap: wrap;
|
|
175
278
|
width: 100%;
|
|
176
279
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
280
|
+
.p-content-card--cols-6 & {
|
|
281
|
+
-webkit-line-clamp: 2;
|
|
282
|
+
line-clamp: 2;
|
|
283
|
+
max-height: 3em;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
@include mq-min($breakpoint-large) {
|
|
287
|
+
.p-content-card--cols-6 & {
|
|
288
|
+
margin-top: $card-nudge-negative !important;
|
|
180
289
|
}
|
|
181
290
|
}
|
|
182
291
|
}
|
|
@@ -198,16 +307,11 @@
|
|
|
198
307
|
grid-template-columns: 1fr;
|
|
199
308
|
grid-template-rows: 1fr;
|
|
200
309
|
overflow: hidden;
|
|
201
|
-
padding: 0 $sp-medium;
|
|
310
|
+
padding: 0 $sp-medium;
|
|
202
311
|
|
|
203
|
-
@
|
|
204
|
-
.p-content-card--4
|
|
205
|
-
.p-content-card--6
|
|
206
|
-
padding: 0;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
@media screen and ($breakpoint-small <= width < $breakpoint-large) {
|
|
210
|
-
.p-content-card--2-cols & {
|
|
312
|
+
@include mq-min($breakpoint-small) {
|
|
313
|
+
.p-content-card--cols-4 &,
|
|
314
|
+
.p-content-card--cols-6 & {
|
|
211
315
|
padding: 0;
|
|
212
316
|
}
|
|
213
317
|
}
|
|
@@ -241,30 +345,37 @@
|
|
|
241
345
|
margin: 0;
|
|
242
346
|
overflow: hidden;
|
|
243
347
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
348
|
+
.p-content-card--cols-6 & {
|
|
349
|
+
-webkit-line-clamp: 2;
|
|
350
|
+
line-clamp: 2;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
@include mq-min($breakpoint-large) {
|
|
354
|
+
.p-content-card--cols-6 & {
|
|
355
|
+
margin-top: $card-nudge-negative !important;
|
|
247
356
|
}
|
|
248
357
|
}
|
|
249
358
|
}
|
|
250
359
|
|
|
360
|
+
&__footer-container {
|
|
361
|
+
/* Structural grouping element.
|
|
362
|
+
Because the parent (.p-content-card__content) uses flexbox space-between,
|
|
363
|
+
this wrapper prevents the <hr> from floating awkwardly in the middle of the card.
|
|
364
|
+
*/
|
|
365
|
+
}
|
|
366
|
+
|
|
251
367
|
&__footer-outer {
|
|
252
368
|
align-items: center;
|
|
253
369
|
align-self: stretch;
|
|
254
370
|
display: flex;
|
|
255
|
-
height:
|
|
371
|
+
height: $card-footer-outer-height;
|
|
256
372
|
overflow: hidden;
|
|
257
373
|
padding: 0 $sp-medium var(--spacing-vertical-small, $sp-small) $sp-medium;
|
|
258
374
|
position: relative;
|
|
259
375
|
|
|
260
|
-
@
|
|
261
|
-
.p-content-card--4
|
|
262
|
-
.p-content-card--6
|
|
263
|
-
padding: 0 0 var(--spacing-vertical-small, $sp-small) 0;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
@media screen and ($breakpoint-small <= width < $breakpoint-large) {
|
|
267
|
-
.p-content-card--2-cols & {
|
|
376
|
+
@include mq-min($breakpoint-small) {
|
|
377
|
+
.p-content-card--cols-4 &,
|
|
378
|
+
.p-content-card--cols-6 & {
|
|
268
379
|
padding: 0 0 var(--spacing-vertical-small, $sp-small) 0;
|
|
269
380
|
}
|
|
270
381
|
}
|
|
@@ -273,8 +384,8 @@
|
|
|
273
384
|
&__footer-inner {
|
|
274
385
|
align-items: center;
|
|
275
386
|
display: flex;
|
|
276
|
-
gap: $sp-small;
|
|
277
|
-
height:
|
|
387
|
+
gap: $sp-small;
|
|
388
|
+
height: $card-footer-inner-height;
|
|
278
389
|
mask-image: linear-gradient(to right, black 85%, transparent 100%);
|
|
279
390
|
-ms-overflow-style: none;
|
|
280
391
|
overflow-x: auto;
|
|
@@ -294,14 +405,14 @@
|
|
|
294
405
|
}
|
|
295
406
|
|
|
296
407
|
.p-chip--information {
|
|
297
|
-
margin: 0
|
|
408
|
+
margin: 0 $card-chip-margin-right 0 0;
|
|
298
409
|
vertical-align: baseline;
|
|
299
410
|
}
|
|
300
411
|
|
|
301
412
|
.u-has-icon {
|
|
302
413
|
align-items: center;
|
|
303
414
|
display: flex;
|
|
304
|
-
gap: $sp-x-small;
|
|
415
|
+
gap: $sp-x-small;
|
|
305
416
|
|
|
306
417
|
.p-content-card__icon[class*='p-icon--'],
|
|
307
418
|
.p-content-card__small {
|
|
@@ -318,24 +429,20 @@
|
|
|
318
429
|
aspect-ratio: 16/9;
|
|
319
430
|
display: block;
|
|
320
431
|
flex-shrink: 0;
|
|
321
|
-
height:
|
|
432
|
+
height: auto;
|
|
322
433
|
object-fit: cover;
|
|
434
|
+
width: 100%;
|
|
323
435
|
|
|
324
|
-
@
|
|
325
|
-
.p-content-card--4
|
|
326
|
-
.p-content-card--6
|
|
327
|
-
height:
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
@media screen and ($breakpoint-small <= width < $breakpoint-large) {
|
|
331
|
-
.p-content-card--2-cols & {
|
|
332
|
-
height: 9.703125rem; /* 155.25px */
|
|
436
|
+
@include mq-min($breakpoint-small) {
|
|
437
|
+
.p-content-card--cols-4 &,
|
|
438
|
+
.p-content-card--cols-6 & {
|
|
439
|
+
height: $card-image-height-horizontal;
|
|
333
440
|
}
|
|
334
441
|
}
|
|
335
442
|
|
|
336
|
-
@
|
|
337
|
-
.p-content-card--6
|
|
338
|
-
height:
|
|
443
|
+
@include mq-min($breakpoint-large) {
|
|
444
|
+
.p-content-card--cols-6 & {
|
|
445
|
+
height: $card-image-height-horizontal-large;
|
|
339
446
|
}
|
|
340
447
|
}
|
|
341
448
|
}
|
|
@@ -344,21 +451,18 @@
|
|
|
344
451
|
align-items: flex-start;
|
|
345
452
|
display: flex;
|
|
346
453
|
flex-direction: column;
|
|
347
|
-
gap: var(--spacing-vertical-image-container,
|
|
454
|
+
gap: var(--spacing-vertical-image-container, $card-fallback-image-gap);
|
|
455
|
+
max-width: 100%;
|
|
348
456
|
padding-bottom: var(--spacing-vertical-large, $sp-medium);
|
|
349
|
-
width: 17.75rem; /* 284px */
|
|
350
457
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
@media screen and ($breakpoint-small <= width < $breakpoint-large) {
|
|
359
|
-
.p-content-card--2-cols & {
|
|
458
|
+
width: 100%;
|
|
459
|
+
|
|
460
|
+
@include mq-min($breakpoint-small) {
|
|
461
|
+
.p-content-card--cols-4 &,
|
|
462
|
+
.p-content-card--cols-6 & {
|
|
360
463
|
align-self: stretch;
|
|
361
464
|
flex: 0 0 auto;
|
|
465
|
+
width: $card-image-width;
|
|
362
466
|
}
|
|
363
467
|
}
|
|
364
468
|
}
|
|
@@ -367,61 +471,59 @@
|
|
|
367
471
|
align-items: flex-start;
|
|
368
472
|
align-self: stretch;
|
|
369
473
|
display: flex;
|
|
474
|
+
padding-bottom: $card-author-padding-bottom;
|
|
370
475
|
|
|
371
476
|
> :first-child {
|
|
372
477
|
margin-bottom: 0 !important;
|
|
373
478
|
}
|
|
374
479
|
|
|
375
|
-
@
|
|
376
|
-
.p-content-card--
|
|
377
|
-
.p-content-card--6-cols & {
|
|
480
|
+
@include mq-between($breakpoint-small, $breakpoint-large) {
|
|
481
|
+
.p-content-card--cols-6 & {
|
|
378
482
|
display: none;
|
|
379
483
|
}
|
|
380
484
|
}
|
|
381
485
|
|
|
382
|
-
@
|
|
383
|
-
.p-content-card--6
|
|
486
|
+
@include mq-min($breakpoint-large) {
|
|
487
|
+
.p-content-card--cols-6 & {
|
|
384
488
|
display: flex;
|
|
385
|
-
margin-top: -0.45rem;
|
|
386
489
|
}
|
|
387
490
|
}
|
|
388
491
|
}
|
|
389
492
|
|
|
390
|
-
&:not(.has-image) {
|
|
391
|
-
height: 12.25rem;
|
|
392
|
-
}
|
|
393
|
-
|
|
394
493
|
&.has-image {
|
|
395
494
|
padding-top: 0;
|
|
396
495
|
|
|
397
|
-
@
|
|
398
|
-
&.p-content-card--4
|
|
399
|
-
&.p-content-card--6
|
|
400
|
-
padding-top: $sp-medium;
|
|
496
|
+
@include mq-min($breakpoint-small) {
|
|
497
|
+
&.p-content-card--cols-4,
|
|
498
|
+
&.p-content-card--cols-6 {
|
|
499
|
+
padding-top: $sp-medium;
|
|
401
500
|
}
|
|
402
501
|
}
|
|
403
502
|
}
|
|
404
503
|
|
|
405
|
-
&:has(.p-content-card__main-link:focus-visible) {
|
|
406
|
-
outline: 3px solid var(--color-focus, #0066cc);
|
|
407
|
-
outline-offset: 2px;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
504
|
&:hover,
|
|
411
505
|
&:focus-within {
|
|
412
506
|
border-color: var(--color-border-high-contrast, #707070);
|
|
413
507
|
text-decoration: none;
|
|
508
|
+
}
|
|
414
509
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
510
|
+
@include mq-min($breakpoint-large) {
|
|
511
|
+
&.has-desc:hover .p-content-card__primary-content,
|
|
512
|
+
&.has-desc:focus-within .p-content-card__primary-content {
|
|
513
|
+
opacity: 0;
|
|
514
|
+
transform: translateY(-150px);
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
&.has-desc:hover .p-content-card__hover-content,
|
|
518
|
+
&.has-desc:focus-within .p-content-card__hover-content {
|
|
519
|
+
opacity: 1;
|
|
520
|
+
transform: translateY(0);
|
|
424
521
|
}
|
|
425
522
|
}
|
|
523
|
+
|
|
524
|
+
&:has(.p-content-card__main-link:focus-visible) {
|
|
525
|
+
outline: 3px solid var(--color-focus, #0066cc);
|
|
526
|
+
outline-offset: 2px;
|
|
527
|
+
}
|
|
426
528
|
}
|
|
427
529
|
}
|
|
@@ -2100,4 +2100,97 @@
|
|
|
2100
2100
|
}
|
|
2101
2101
|
}
|
|
2102
2102
|
|
|
2103
|
-
//
|
|
2103
|
+
// ICONS ADDED IN APRIL 2026
|
|
2104
|
+
|
|
2105
|
+
@mixin vf-p-icon-devtools {
|
|
2106
|
+
.p-icon--devtools {
|
|
2107
|
+
@extend %icon;
|
|
2108
|
+
@include vf-icon-devtools-themed;
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
|
|
2112
|
+
@mixin vf-p-icon-devtools-off {
|
|
2113
|
+
.p-icon--devtools-off {
|
|
2114
|
+
@extend %icon;
|
|
2115
|
+
@include vf-icon-devtools-off-themed;
|
|
2116
|
+
}
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
@mixin vf-p-icon-keyboard {
|
|
2120
|
+
.p-icon--keyboard {
|
|
2121
|
+
@extend %icon;
|
|
2122
|
+
@include vf-icon-keyboard-themed;
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
@mixin vf-p-icon-keyboard-off {
|
|
2127
|
+
.p-icon--keyboard-off {
|
|
2128
|
+
@extend %icon;
|
|
2129
|
+
@include vf-icon-keyboard-off-themed;
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
@mixin vf-p-icon-resize {
|
|
2134
|
+
.p-icon--resize {
|
|
2135
|
+
@extend %icon;
|
|
2136
|
+
@include vf-icon-resize-themed;
|
|
2137
|
+
}
|
|
2138
|
+
}
|
|
2139
|
+
|
|
2140
|
+
@mixin vf-p-icon-resize-off {
|
|
2141
|
+
.p-icon--resize-off {
|
|
2142
|
+
@extend %icon;
|
|
2143
|
+
@include vf-icon-resize-off-themed;
|
|
2144
|
+
}
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
@mixin vf-p-icon-rotate-left {
|
|
2148
|
+
.p-icon--rotate-left {
|
|
2149
|
+
@extend %icon;
|
|
2150
|
+
@include vf-icon-rotate-left-themed;
|
|
2151
|
+
}
|
|
2152
|
+
}
|
|
2153
|
+
|
|
2154
|
+
@mixin vf-p-icon-rotate-right {
|
|
2155
|
+
.p-icon--rotate-right {
|
|
2156
|
+
@extend %icon;
|
|
2157
|
+
@include vf-icon-rotate-right-themed;
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2161
|
+
@mixin vf-p-icon-screen-record-start {
|
|
2162
|
+
.p-icon--screen-record-start {
|
|
2163
|
+
@extend %icon;
|
|
2164
|
+
@include vf-icon-screen-record-start-themed;
|
|
2165
|
+
}
|
|
2166
|
+
}
|
|
2167
|
+
|
|
2168
|
+
@mixin vf-p-icon-screen-record-stop {
|
|
2169
|
+
.p-icon--screen-record-stop {
|
|
2170
|
+
@extend %icon;
|
|
2171
|
+
@include vf-icon-screen-record-stop-themed;
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
|
|
2175
|
+
@mixin vf-p-icon-screenshot {
|
|
2176
|
+
.p-icon--screenshot {
|
|
2177
|
+
@extend %icon;
|
|
2178
|
+
@include vf-icon-screenshot-themed;
|
|
2179
|
+
}
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
@mixin vf-p-icon-volume-down {
|
|
2183
|
+
.p-icon--volume-down {
|
|
2184
|
+
@extend %icon;
|
|
2185
|
+
@include vf-icon-volume-down-themed;
|
|
2186
|
+
}
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
@mixin vf-p-icon-volume-up {
|
|
2190
|
+
.p-icon--volume-up {
|
|
2191
|
+
@extend %icon;
|
|
2192
|
+
@include vf-icon-volume-up-themed;
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2196
|
+
// **Base and Pattern mixins accurate as of April 2026**
|
|
@@ -22,80 +22,77 @@
|
|
|
22
22
|
|
|
23
23
|
{%- macro vf_card(columns="2", link=None, heading=None, image=None, author=None, date=None, footer=None, description=None) -%}
|
|
24
24
|
|
|
25
|
-
{%- set
|
|
25
|
+
{%- set col_str = columns | string -%}
|
|
26
|
+
{%- set layout = 'p-content-card--cols-' ~ col_str -%}
|
|
26
27
|
{%- set img_class = 'has-image' if image else '' -%}
|
|
27
28
|
{%- set has_desc = 'has-desc' if description else '' -%}
|
|
28
29
|
|
|
29
|
-
<div class="p-content-card {{
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
<div class="p-content-card-wrapper p-content-card-wrapper--{{ col_str }}">
|
|
31
|
+
|
|
32
|
+
<div class="p-content-card {{ layout }} {{ img_class }} {{ has_desc }}">
|
|
33
|
+
|
|
34
|
+
{%- if link -%}
|
|
35
|
+
<a href="{{ link }}" class="p-content-card__overlay-link" tabindex="-1" aria-hidden="true"></a>
|
|
36
|
+
{%- endif -%}
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
{%- if image -%}
|
|
39
|
+
<div class="p-content-card__image-wrapper">
|
|
40
|
+
<img class="p-content-card__image" src="{{ image.src }}" alt="{{ image.alt }}" />
|
|
41
|
+
</div>
|
|
42
|
+
{%- endif -%}
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
<div class="p-content-card__primary-content">
|
|
45
|
-
<h4 class="p-content-card__heading">
|
|
46
|
-
{%- if link -%}
|
|
47
|
-
<a href="{{ link }}" class="p-content-card__main-link">{{ heading }}</a>
|
|
48
|
-
{%- else -%}
|
|
49
|
-
{{ heading }}
|
|
50
|
-
{%- endif -%}
|
|
51
|
-
</h4>
|
|
44
|
+
<div class="p-content-card__content">
|
|
45
|
+
<div class="p-content-card__body">
|
|
52
46
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{%- if author and date -%}
|
|
61
|
-
·
|
|
62
|
-
{%- endif -%}
|
|
63
|
-
|
|
64
|
-
{%- if date -%}
|
|
65
|
-
<span class="u-text--muted">{{ date }}</span>
|
|
47
|
+
<div class="p-content-card__primary-content">
|
|
48
|
+
<h4 class="p-content-card__heading">
|
|
49
|
+
{%- if link -%}
|
|
50
|
+
<a href="{{ link }}" class="p-content-card__main-link">{{ heading }}</a>
|
|
51
|
+
{%- else -%}
|
|
52
|
+
{{ heading }}
|
|
66
53
|
{%- endif -%}
|
|
67
|
-
</
|
|
54
|
+
</h4>
|
|
55
|
+
|
|
56
|
+
{%- if image and (author or date) -%}
|
|
57
|
+
<div class="p-content-card__author-and-date u-sv-3">
|
|
58
|
+
<small>
|
|
59
|
+
{%- set items = [] -%}
|
|
60
|
+
{%- if author -%}{%- set _ = items.append('<span class="u-text--muted">' ~ author ~ '</span>') -%}{%- endif -%}
|
|
61
|
+
{%- if date -%}{%- set _ = items.append('<span class="u-text--muted">' ~ date ~ '</span>') -%}{%- endif -%}
|
|
62
|
+
{{ items | join(' · ') | safe }}
|
|
63
|
+
</small>
|
|
64
|
+
</div>
|
|
65
|
+
{%- endif -%}
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
{%- if description -%}
|
|
69
|
+
<div class="p-content-card__hover-content">
|
|
70
|
+
<p class="p-content-card__description">{{ description }}</p>
|
|
68
71
|
</div>
|
|
69
72
|
{%- endif -%}
|
|
70
|
-
</div>
|
|
71
73
|
|
|
72
|
-
{%- if description -%}
|
|
73
|
-
<div class="p-content-card__hover-content">
|
|
74
|
-
<p class="p-content-card__description">{{ description }}</p>
|
|
75
74
|
</div>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
<small class="p-content-card__small">{{ footer.resource_type.text }}</small>
|
|
89
|
-
</span>
|
|
90
|
-
{%- endif -%}
|
|
75
|
+
|
|
76
|
+
{%- if footer -%}
|
|
77
|
+
<div class="p-content-card__footer-container">
|
|
78
|
+
<hr class="p-rule--muted">
|
|
79
|
+
<div class="p-content-card__footer-outer">
|
|
80
|
+
<div class="p-content-card__footer-inner" tabindex="-1">
|
|
81
|
+
{%- if footer.resource_type -%}
|
|
82
|
+
<span class="u-has-icon">
|
|
83
|
+
<i class="p-content-card__icon p-icon--{{ footer.resource_type.icon }}"></i>
|
|
84
|
+
<small class="p-content-card__small">{{ footer.resource_type.text }}</small>
|
|
85
|
+
</span>
|
|
86
|
+
{%- endif -%}
|
|
91
87
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
{%- if footer.content_type %}
|
|
89
|
+
<span class="p-chip--information is-readonly">{{ footer.content_type }}</span>
|
|
90
|
+
{%- endif -%}
|
|
91
|
+
</div>
|
|
95
92
|
</div>
|
|
96
93
|
</div>
|
|
94
|
+
{%- endif -%}
|
|
97
95
|
</div>
|
|
98
|
-
{%- endif -%}
|
|
99
96
|
</div>
|
|
100
97
|
</div>
|
|
101
98
|
{%- endmacro -%}
|