chore(branding): remove leftover upstream theme identifiers
The theme was renamed Zibll/子比 → AKSRT → Jio, but upstream branding survived the sweeps in CSS classes, the SVG sprite prefix, a persisted widget field ID, JS events, admin Vue class names, test infrastructure and docblocks. Renames: - zib-widget / zib-widget-wrap / zib-slider → jio-widget-box / jio-widget-box-wrap / jio-slider-box (jio-widget is taken by the modern widget shell, jio-box-* by the card primitives) - zib-partners-scroll + zps-* → jio-partners-scroll + jps-* - zib-combo-info-card + zci-* → jio-combo-info-card + jci-* - zibsvg- → jiosvg-, including the exported picker helpers and the fa-zibsvg- family-prefix guard - zibpay_type → pay_type; the dual-read fallback in PostQuery collapses to a single key - [zibajax="submit"] dropped (no PHP emitter); zib_ajax.success → jio_ajax.success - aks-* admin Vue classes → jio-* - zib_palette() → palette() User-facing vendor traces are gone: the floating "more" button default no longer ships a zibll.com link or 子比主题 marketing copy, the notice widget ships no preset promo entries, and the four 官网教程 links are removed from the post-list admin schema. Test infrastructure renamed to neutral names (docker-compose.reference.yml, Caddyfile, article-baseline.json, modern-widgets-contract.test.cjs) with their DB/volume/env/slug identifiers following. Kept intentionally, documented in tests/fixtures/README.md: the golden fixture reference fingerprint (a SHA-256 record of an external directory, read by validate-widget-golden / generate-widget-golden-fixture / audit-widget-system), the doesNotMatch guards that prove the old tokens are gone, and the reference theme's own meta key in the visual fixtures. No backward-compat or data migration: saved widget configs holding old icon keys or the old field ID silently lose them, per the project's rewrite-over-compatibility rule. Verified: 132/132 node contract tests, php tests/widget-system/run.php (146 assertions), audit-admin-contracts, audit-psr4-paths and validate-widget-golden all green; tracked bundles regenerated and in sync. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
42cc64106d
commit
427968a721
188 files changed
+915
-967
No files matched your search
+102
-102
@@ -3957,11 +3957,11 @@ body:has(.modal.in) .float-btn,
|
||||
}
|
||||
|
||||
/**------小工具:复合信息卡片模块--------**/
|
||||
.zib-combo-info-card {
|
||||
--zci-radius: 12px;
|
||||
--zci-band-h: 80px;
|
||||
.jio-combo-info-card {
|
||||
--jci-radius: 12px;
|
||||
--jci-band-h: 80px;
|
||||
}
|
||||
.zib-combo-info-card .zci-card {
|
||||
.jio-combo-info-card .jci-card {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
min-height: 180px;
|
||||
@@ -3971,62 +3971,62 @@ body:has(.modal.in) .float-btn,
|
||||
transition: transform 0.25s ease, box-shadow 0.25s ease;
|
||||
box-shadow: 0 1px 3px var(--main-shadow);
|
||||
}
|
||||
.zib-combo-info-card .zci-card:hover {
|
||||
.jio-combo-info-card .jci-card:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 12px 32px var(--main-shadow);
|
||||
}
|
||||
.zib-combo-info-card .zci-card::before {
|
||||
.jio-combo-info-card .jci-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
height: calc(var(--zci-band-h) * 1.5);
|
||||
height: calc(var(--jci-band-h) * 1.5);
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
pointer-events: none;
|
||||
}
|
||||
.zib-combo-info-card.zci-has-band .zci-card::before {
|
||||
.jio-combo-info-card.jci-has-band .jci-card::before {
|
||||
opacity: 1;
|
||||
}
|
||||
/* 色带配色(仅保留关键的渐变,无法用主题变量简写) */
|
||||
.zib-combo-info-card .zci-card.zci-band-blue::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-blue::before {
|
||||
background: linear-gradient(170deg, rgba(114, 160, 255, 0.3), rgba(196, 174, 255, 0.2) 15%, transparent 60%);
|
||||
}
|
||||
.zib-combo-info-card .zci-card.zci-band-cyan::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-cyan::before {
|
||||
background: linear-gradient(170deg, rgba(82, 196, 214, 0.3), rgba(130, 200, 255, 0.18) 15%, transparent 60%);
|
||||
}
|
||||
.zib-combo-info-card .zci-card.zci-band-green::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-green::before {
|
||||
background: linear-gradient(170deg, rgba(92, 209, 158, 0.3), rgba(180, 230, 170, 0.2) 15%, transparent 60%);
|
||||
}
|
||||
.zib-combo-info-card .zci-card.zci-band-yellow::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-yellow::before {
|
||||
background: linear-gradient(170deg, rgba(255, 190, 102, 0.3), rgba(255, 220, 132, 0.22) 15%, transparent 60%);
|
||||
}
|
||||
.zib-combo-info-card .zci-card.zci-band-pink::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-pink::before {
|
||||
background: linear-gradient(170deg, rgba(255, 146, 181, 0.3), rgba(255, 190, 220, 0.2) 15%, transparent 60%);
|
||||
}
|
||||
.zib-combo-info-card .zci-card.zci-band-purple::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-purple::before {
|
||||
background: linear-gradient(170deg, rgba(170, 140, 255, 0.36), rgba(220, 180, 255, 0.22) 15%, transparent 60%);
|
||||
}
|
||||
.zib-combo-info-card .zci-card.zci-band-gray::before {
|
||||
.jio-combo-info-card .jci-card.jci-band-gray::before {
|
||||
background: linear-gradient(170deg, rgba(140, 150, 170, 0.22), rgba(190, 195, 210, 0.14) 15%, transparent 60%);
|
||||
}
|
||||
/* 内容区:只控 padding 和层级,flex 布局由 HTML class 完成 */
|
||||
.zib-combo-info-card .zci-body {
|
||||
.jio-combo-info-card .jci-body {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 20px;
|
||||
}
|
||||
.zci-tags {
|
||||
.jci-tags {
|
||||
margin: -4px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.zci-tags > span {
|
||||
.jci-tags > span {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
/* 图标盒子:尺寸与圆角,背景沿用卡片主色自动适配暗色 */
|
||||
.zib-combo-info-card .zci-icon {
|
||||
.jio-combo-info-card .jci-icon {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border-radius: 8px;
|
||||
@@ -4034,65 +4034,65 @@ body:has(.modal.in) .float-btn,
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
.zib-combo-info-card .zci-icon img {
|
||||
.jio-combo-info-card .jci-icon img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
}
|
||||
/* 标题字号(font-bold / text-ellipsis-2 / mb10 已走工具类) */
|
||||
.zib-combo-info-card .zci-title {
|
||||
.jio-combo-info-card .jci-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
/* CTA 行动链接:仅保留颜色 + hover 行为 + 箭头动效 */
|
||||
.zib-combo-info-card .zci-cta {
|
||||
.jio-combo-info-card .jci-cta {
|
||||
margin-top: 20px;
|
||||
color: var(--this-color, --key-color);
|
||||
font-weight: 500;
|
||||
transition: 0.2s;
|
||||
}
|
||||
.zib-combo-info-card .zci-cta:hover {
|
||||
.jio-combo-info-card .jci-cta:hover {
|
||||
gap: 10px;
|
||||
color: var(--focus-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
.zib-combo-info-card .zci-cta .zci-arrow {
|
||||
.jio-combo-info-card .jci-cta .jci-arrow {
|
||||
transform: rotate(-45deg);
|
||||
font-size: 11px;
|
||||
transition: transform 0.25s ease;
|
||||
}
|
||||
.zib-combo-info-card .zci-cta:hover .zci-arrow {
|
||||
.jio-combo-info-card .jci-cta:hover .jci-arrow {
|
||||
transform: rotate(-45deg) translateX(2px);
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.zib-combo-info-card .zci-card {
|
||||
.jio-combo-info-card .jci-card {
|
||||
min-height: 160px;
|
||||
}
|
||||
.zib-combo-info-card .zci-body {
|
||||
.jio-combo-info-card .jci-body {
|
||||
padding: 14px;
|
||||
}
|
||||
.col-xs-12 .zci-card .zci-body {
|
||||
.col-xs-12 .jci-card .jci-body {
|
||||
padding: 20px;
|
||||
}
|
||||
.zib-combo-info-card .zci-title {
|
||||
.jio-combo-info-card .jci-title {
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar .zib-combo-info-card > * {
|
||||
.sidebar .jio-combo-info-card > * {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.sidebar .zib-combo-info-card .zci-card {
|
||||
.sidebar .jio-combo-info-card .jci-card {
|
||||
min-height: 160px;
|
||||
}
|
||||
.sidebar .zib-combo-info-card .zci-body {
|
||||
.sidebar .jio-combo-info-card .jci-body {
|
||||
padding: 14px;
|
||||
}
|
||||
.sidebar .col-xs-12 .zci-card .zci-body {
|
||||
.sidebar .col-xs-12 .jci-card .jci-body {
|
||||
padding: 20px;
|
||||
}
|
||||
.sidebar .zib-combo-info-card .zci-title {
|
||||
.sidebar .jio-combo-info-card .jci-title {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
@@ -4422,52 +4422,52 @@ body:has(.modal.in) .float-btn,
|
||||
}
|
||||
|
||||
/**------小工具:横向滚动合作伙伴模块--------**/
|
||||
.zib-partners-scroll {
|
||||
--zps-card-w: 220px;
|
||||
--zps-card-h: 90px;
|
||||
--zps-card-radius: 10px;
|
||||
--zps-speed: 3;
|
||||
--zps-gap: 10px;
|
||||
.jio-partners-scroll {
|
||||
--jps-card-w: 220px;
|
||||
--jps-card-h: 90px;
|
||||
--jps-card-radius: 10px;
|
||||
--jps-speed: 3;
|
||||
--jps-gap: 10px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.zib-partners-scroll .zps-row {
|
||||
.jio-partners-scroll .jps-row {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin-bottom: var(--zps-gap);
|
||||
margin-bottom: var(--jps-gap);
|
||||
}
|
||||
.zib-partners-scroll .zps-row:last-child {
|
||||
.jio-partners-scroll .jps-row:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.zib-partners-scroll .zps-track {
|
||||
.jio-partners-scroll .jps-track {
|
||||
display: flex;
|
||||
width: max-content;
|
||||
will-change: transform;
|
||||
animation: zps-scroll-left var(--zps-duration, 30s) linear infinite;
|
||||
animation: jps-scroll-left var(--jps-duration, 30s) linear infinite;
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.zib-partners-scroll .zps-dir-right .zps-track {
|
||||
animation-name: zps-scroll-right;
|
||||
.jio-partners-scroll .jps-dir-right .jps-track {
|
||||
animation-name: jps-scroll-right;
|
||||
}
|
||||
.zib-partners-scroll .zps-track[data-zps-ready] {
|
||||
.jio-partners-scroll .jps-track[data-jps-ready] {
|
||||
animation-play-state: running;
|
||||
}
|
||||
.zib-partners-scroll .zps-group {
|
||||
gap: var(--zps-gap);
|
||||
padding-right: var(--zps-gap);
|
||||
.jio-partners-scroll .jps-group {
|
||||
gap: var(--jps-gap);
|
||||
padding-right: var(--jps-gap);
|
||||
}
|
||||
.zib-partners-scroll.zps-pause-hover .zps-row:hover .zps-track {
|
||||
.jio-partners-scroll.jps-pause-hover .jps-row:hover .jps-track {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.zib-partners-scroll .zps-item {
|
||||
width: var(--zps-card-w);
|
||||
height: var(--zps-card-h);
|
||||
.jio-partners-scroll .jps-item {
|
||||
width: var(--jps-card-w);
|
||||
height: var(--jps-card-h);
|
||||
overflow: hidden;
|
||||
padding: 8px 10px;
|
||||
color: inherit;
|
||||
}
|
||||
.zib-partners-scroll .zps-img {
|
||||
.jio-partners-scroll .jps-img {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
width: auto;
|
||||
@@ -4475,71 +4475,71 @@ body:has(.modal.in) .float-btn,
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
}
|
||||
.zib-partners-scroll.zps-card-bg .zps-item {
|
||||
.jio-partners-scroll.jps-card-bg .jps-item {
|
||||
background: var(--main-bg-color);
|
||||
border-radius: var(--zps-card-radius);
|
||||
border-radius: var(--jps-card-radius);
|
||||
}
|
||||
.jio-panel .zib-partners-scroll.zps-card-bg .zps-item {
|
||||
.jio-panel .jio-partners-scroll.jps-card-bg .jps-item {
|
||||
background: var(--muted-border-color);
|
||||
}
|
||||
/* 图文卡片模式 */
|
||||
.zib-partners-scroll.zps-style-card .zps-card-icon {
|
||||
width: calc(var(--zps-card-h) - 30px);
|
||||
height: calc(var(--zps-card-h) - 30px);
|
||||
.jio-partners-scroll.jps-style-card .jps-card-icon {
|
||||
width: calc(var(--jps-card-h) - 30px);
|
||||
height: calc(var(--jps-card-h) - 30px);
|
||||
min-width: 40px;
|
||||
min-height: 40px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.zib-partners-scroll.zps-style-card .zps-img {
|
||||
.jio-partners-scroll.jps-style-card .jps-img {
|
||||
object-fit: cover;
|
||||
border-radius: calc(var(--zps-card-radius) - 4px);
|
||||
border-radius: calc(var(--jps-card-radius) - 4px);
|
||||
width: 100%;
|
||||
}
|
||||
/* 纯 Logo 模式:高度固定、宽度自适应,图片保持原始比例 */
|
||||
.zib-partners-scroll.zps-style-logo .zps-item {
|
||||
.jio-partners-scroll.jps-style-logo .jps-item {
|
||||
width: auto;
|
||||
min-width: 0;
|
||||
justify-content: center;
|
||||
padding: 0 20px;
|
||||
}
|
||||
.zib-partners-scroll.zps-style-logo .zps-img {
|
||||
height: calc(var(--zps-card-h) - 24px);
|
||||
max-height: calc(var(--zps-card-h) - 24px);
|
||||
.jio-partners-scroll.jps-style-logo .jps-img {
|
||||
height: calc(var(--jps-card-h) - 24px);
|
||||
max-height: calc(var(--jps-card-h) - 24px);
|
||||
width: auto;
|
||||
max-width: none;
|
||||
filter: grayscale(40%);
|
||||
transition: filter 0.25s ease, transform 0.25s ease;
|
||||
}
|
||||
.zib-partners-scroll.zps-style-logo .zps-item:hover .zps-img {
|
||||
.jio-partners-scroll.jps-style-logo .jps-item:hover .jps-img {
|
||||
filter: grayscale(0);
|
||||
transform: scale(1.04);
|
||||
}
|
||||
/* 精简胶囊模式 */
|
||||
.zib-partners-scroll.zps-style-chip .zps-item {
|
||||
.jio-partners-scroll.jps-style-chip .jps-item {
|
||||
min-height: 40px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
padding: 8px 14px;
|
||||
}
|
||||
.zib-partners-scroll.zps-card-bg.zps-style-chip .zps-item {
|
||||
.jio-partners-scroll.jps-card-bg.jps-style-chip .jps-item {
|
||||
padding: 8px 16px 8px 10px;
|
||||
}
|
||||
.zib-partners-scroll.zps-style-chip .zps-chip-icon .zps-img {
|
||||
.jio-partners-scroll.jps-style-chip .jps-chip-icon .jps-img {
|
||||
height: 22px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.zib-partners-scroll.zps-card-bg.zps-style-chip .zps-chip-icon .zps-img {
|
||||
border-radius: calc(var(--zps-card-radius) - 4px);
|
||||
.jio-partners-scroll.jps-card-bg.jps-style-chip .jps-chip-icon .jps-img {
|
||||
border-radius: calc(var(--jps-card-radius) - 4px);
|
||||
}
|
||||
.zib-partners-scroll.zps-style-chip .zps-chip-title {
|
||||
.jio-partners-scroll.jps-style-chip .jps-chip-title {
|
||||
max-width: 180px;
|
||||
}
|
||||
.zps-end-fade {
|
||||
.jps-end-fade {
|
||||
position: relative;
|
||||
--zps-end-fade-color: var(--body-bg-color);
|
||||
--jps-end-fade-color: var(--body-bg-color);
|
||||
}
|
||||
.zps-end-fade::before,
|
||||
.zps-end-fade::after {
|
||||
.jps-end-fade::before,
|
||||
.jps-end-fade::after {
|
||||
content: '';
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
@@ -4547,48 +4547,48 @@ body:has(.modal.in) .float-btn,
|
||||
width: 160px;
|
||||
height: 100%;
|
||||
}
|
||||
.zps-end-fade::before {
|
||||
.jps-end-fade::before {
|
||||
left: -10px;
|
||||
background: linear-gradient(to left, rgba(255, 255, 255, 0), var(--zps-end-fade-color) 90%);
|
||||
background: linear-gradient(to left, rgba(255, 255, 255, 0), var(--jps-end-fade-color) 90%);
|
||||
}
|
||||
.zps-end-fade::after {
|
||||
.jps-end-fade::after {
|
||||
right: -10px;
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--zps-end-fade-color) 90%);
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--jps-end-fade-color) 90%);
|
||||
}
|
||||
.jio-panel .zps-end-fade {
|
||||
--zps-end-fade-color: var(--main-bg-color);
|
||||
.jio-panel .jps-end-fade {
|
||||
--jps-end-fade-color: var(--main-bg-color);
|
||||
}
|
||||
|
||||
@keyframes zps-scroll-left {
|
||||
@keyframes jps-scroll-left {
|
||||
from {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
to {
|
||||
transform: translate3d(var(--zps-shift, -50%), 0, 0);
|
||||
transform: translate3d(var(--jps-shift, -50%), 0, 0);
|
||||
}
|
||||
}
|
||||
@keyframes zps-scroll-right {
|
||||
@keyframes jps-scroll-right {
|
||||
from {
|
||||
transform: translate3d(var(--zps-shift, -50%), 0, 0);
|
||||
transform: translate3d(var(--jps-shift, -50%), 0, 0);
|
||||
}
|
||||
to {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.zib-partners-scroll {
|
||||
--zps-card-w: 160px;
|
||||
--zps-card-h: 70px;
|
||||
.jio-partners-scroll {
|
||||
--jps-card-w: 160px;
|
||||
--jps-card-h: 70px;
|
||||
}
|
||||
.zib-partners-scroll.zps-style-logo .zps-item {
|
||||
.jio-partners-scroll.jps-style-logo .jps-item {
|
||||
padding: 0 12px;
|
||||
}
|
||||
.zps-end-fade::after {
|
||||
.jps-end-fade::after {
|
||||
width: 60px;
|
||||
}
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.zib-partners-scroll .zps-track {
|
||||
.jio-partners-scroll .jps-track {
|
||||
animation: none !important;
|
||||
}
|
||||
}
|
||||
@@ -4810,7 +4810,7 @@ body:has(.modal.in) .float-btn,
|
||||
line-height: 1.42857143;
|
||||
}
|
||||
|
||||
.posts-nav-box .zib-widget {
|
||||
.posts-nav-box .jio-widget-box {
|
||||
clear: both;
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
@@ -5134,7 +5134,7 @@ body:has(.modal.in) .float-btn,
|
||||
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/*-----zib.media-文件管理-图片上传---*/
|
||||
/*-----媒体文件管理-图片上传---*/
|
||||
.mini-media-my-box .drop-mask {
|
||||
position: absolute;
|
||||
background: rgba(33, 55, 81, 0.7);
|
||||
@@ -5755,8 +5755,8 @@ body:has(.modal.in) .float-btn,
|
||||
.payment-method-radio img {
|
||||
height: 35px;
|
||||
/* 抵消 bootstrap 全局 img{display:block;max-width:100%;height:auto}
|
||||
(Jio bootstrap 将 BS3 .img-responsive 选择器组误并入了裸 img,
|
||||
Zibll 的裸 img 不在该组):flex 压缩时 max-width:100% 会把图标
|
||||
(本主题 bootstrap 将 BS3 .img-responsive 选择器组误并入了裸 img):
|
||||
flex 压缩时 max-width:100% 会把图标
|
||||
钳制到被压窄的项宽(实测 5 渠道 400px 弹窗图标被压成 16x35 细
|
||||
条),flex:none 防不住 max-width,必须显式还原。 */
|
||||
width: auto;
|
||||
@@ -11210,7 +11210,7 @@ body.error404 {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.mobile-navbar .posts-nav-box .zib-widget {
|
||||
.mobile-navbar .posts-nav-box .jio-widget-box {
|
||||
background: var(--muted-border-color);
|
||||
box-shadow: none;
|
||||
}
|
||||
@@ -11991,7 +11991,7 @@ body.error404 {
|
||||
}
|
||||
|
||||
/* =============================================================================
|
||||
* 销售页小工具(主题并入,源自 zibaut-access widgets.css)
|
||||
* 销售页小工具(销售页访问控制相关样式并入)
|
||||
* ============================================================================= */
|
||||
|
||||
/* =============================================================
|
||||
@@ -14150,7 +14150,7 @@ body.error404 {
|
||||
/*--------------OVER---over---------OVER---over---------OVER---over---------OVER---over-----------*/
|
||||
|
||||
/*--------------FA5 family-prefix compatibility---------FA5 family-prefix compatibility-------------*/
|
||||
/* zibll-legacy "fa fab / fa far" double-prefix values beat FA5's own single-class
|
||||
/* Legacy "fa fab / fa far" double-prefix values beat FA5's own single-class
|
||||
declarations in the cascade, blanking brand icons and bolding regular ones. */
|
||||
.fa.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
|
||||
.fa.far{font-weight:400}
|
||||
Reference in new issue
Block a user