Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
3320d81
chore(bling): update to SHINE styling
dancormier Oct 20, 2025
c7e7761
Let's stick with "award bling" for now
dancormier Oct 20, 2025
e7fb59b
Why was I doing `--`?
dancormier Oct 20, 2025
f8e794b
update tests
dancormier Oct 20, 2025
2d112fd
Update other baseline images
dancormier Oct 21, 2025
5980423
Update svelte component
dancormier Oct 21, 2025
34784c0
update tests, formatting
dancormier Oct 21, 2025
6e8823a
Fix some tests
dancormier Oct 21, 2025
2ecbdf3
got a little lint in my pocket
dancormier Oct 21, 2025
adf745c
Change name to bling
dancormier Oct 21, 2025
c43503d
formatting!
dancormier Oct 21, 2025
0adb725
Merge branch 'beta' into SPARK-58/bling
dancormier Oct 24, 2025
a9d74b6
Add TODO for migration guide
dancormier Oct 24, 2025
aa7b826
Address PR review
dancormier Nov 10, 2025
1c399ec
Merge branch 'beta' into SPARK-58/bling
dancormier Nov 10, 2025
9e2a349
Remove award bling test images
dancormier Nov 10, 2025
cdd991e
update remaining visual regression test images
dancormier Nov 10, 2025
b6c6a4b
Update activity variant to use pink colors
dancormier Nov 10, 2025
f77f82a
changeset
dancormier Nov 10, 2025
0c766ad
Address review
dancormier Nov 11, 2025
a3a051e
Update docs, tests to use updated badge, migration guide
dancormier Nov 11, 2025
09b47fa
whoops
dancormier Nov 11, 2025
29d6b70
Add svelte link
dancormier Nov 12, 2025
7a07b9f
Change rep bling color
dancormier Nov 12, 2025
55ee40a
Omit rep, activity base bling from svelte examples
dancormier Nov 12, 2025
85bc7b7
Make the base bling appear as the base bling in svelte docs
dancormier Nov 12, 2025
394a816
Merge branch 'beta' into SPARK-58/bling
dancormier Nov 12, 2025
cb7f683
Update docs
dancormier Nov 12, 2025
4fd4cde
Minor tweaks to the docs
dancormier Nov 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .changeset/goofy-toys-attend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@stackoverflow/stacks": minor
"@stackoverflow/stacks-svelte": minor
---

Update Bling component to match SHINE styles
10 changes: 9 additions & 1 deletion MIGRATION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@

### Components

#### Bling (previously *Award Bling*)
- The Award Bling component has been renamed to Bling.
- Bling no longer accepts children elements besides those for screen readers. Please include any visually represented strings (such as counts) as siblings to the bling component.

#### Popover
- The new popovers no longer include an arrow element. The `s-popover--arrow` css class has been removed, and any markup using it (e.g. `<div class="s-popover--arrow"></div>`) should be deleted from the codebases as part of the migration.

Expand All @@ -33,7 +37,11 @@

# Migrating from Stacks Svelte v0 to v1

Coming soon…
## Breaking changes

### Bling (previously *AwardBling*)

The `AwardBling` component has been renamed to `Bling`.

# Migrating from Stacks v1 to v2

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ describe("badge", () => {
baseClass: "s-badge",
variants: [bling],
children: {
default: `<span class="s-award-bling s-award-bling__${bling}">
default: `<span class="s-bling s-bling__${bling}">
with bling
</span>`,
},
Expand Down
16 changes: 16 additions & 0 deletions packages/stacks-classic/lib/components/bling/bling.a11y.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { runA11yTests } from "../../test/a11y-test-utils";
import "../../index";

describe("bling", () => {
runA11yTests({
baseClass: "s-bling",
variants: ["activity", "rep", "gold", "silver", "bronze"],
modifiers: {
primary: ["filled"],
secondary: ["sm", "lg"],
},
children: {
default: `<div class="v-visible-sr">bling</div>`,
},
});
});
93 changes: 93 additions & 0 deletions packages/stacks-classic/lib/components/bling/bling.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
.s-bling {
--_bl-bg: unset;
--_bl-size: calc(var(--su8) + var(--su2));
// Icon
--_bl-icon: url("data:image/svg+xml;utf8,<svg viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg'><circle cx='4' cy='4' r='4'/></svg>");
--_bl-icon-bg: var(--black-500);
--_bl-icon-size: var(--su8);

// VARIANTS
&&__gold,
&&__silver {
--_bl-icon-size: calc(var(--su8) + var(--su2));
}

&&__activity {
--_bl-icon-bg: var(--pink-400);
}
// Metals
&&__gold {
--_bl-icon-bg: var(--yellow-400);
--_bl-icon: url("data:image/svg+xml;,<svg viewBox='0 0 8 9' xmlns='http://www.w3.org/2000/svg'><path d='M3.89709 0L7.79421 2.25V6.75L3.89709 9L-1.95503e-05 6.75V2.25L3.89709 0Z'/></svg>");
}

&&__silver {
--_bl-icon-bg: var(--blue-400);
--_bl-icon: url("data:image/svg+xml;,<svg viewBox='0 0 9 9' xmlns='http://www.w3.org/2000/svg'><path d='M4.27979 0L8.55954 3.10942L6.92482 8.14058H1.63475L3.09944e-05 3.10942L4.27979 0Z'/></svg>");
}

&&__bronze {
--_bl-icon-bg: var(--orange-400);
--_bl-icon: url("data:image/svg+xml;,<svg viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg'><rect width='8' height='8'/></svg>");
}

// MODIFIERS
// Filled
&&__filled {
--_bl-bg: var(--black-225);
--_bl-icon-bg: var(--black-600);
--_bl-size: var(--su24);

&.s-bling {
&__rep {
--_bl-bg: var(--black-300);
}
&__activity {
--_bl-bg: var(--pink-300);
--_bl-icon-bg: var(--pink-600);
}
&__gold {
--_bl-bg: var(--yellow-300);
--_bl-icon-bg: var(--yellow-600);
}
&__silver {
--_bl-bg: var(--blue-300);
--_bl-icon-bg: var(--blue-600);
}
&__bronze {
--_bl-bg: var(--orange-300);
--_bl-icon-bg: var(--orange-600);
}
}
}

// Sizes
&&__sm {
--_bl-icon-size: var(--su6);
--_bl-size: var(--su16);
}

&&__lg {
--_bl-size: calc(var(--su24) + var(--su4)); // 28px
}

// CHILD ELEMENTS
&:before {
-webkit-mask: var(--_bl-icon) no-repeat center;
mask: var(--_bl-icon) no-repeat center;

background-color: var(--_bl-icon-bg);
content: "";
height: var(--_bl-icon-size);
width: var(--_bl-icon-size);
}

background-color: var(--_bl-bg);
height: var(--_bl-size);
width: var(--_bl-size);

align-items: center;
color: inherit;
display: inline-flex;
justify-content: center;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import "../../index";

describe("anchors", () => {
runVisualTests({
baseClass: "s-award-bling",
variants: ["gold", "silver", "bronze"],
children: {
default: `100 <div class="v-visible-sr">award</div>`,
baseClass: "s-bling",
variants: ["activity", "rep", "gold", "silver", "bronze"],
modifiers: {
primary: ["filled"],
secondary: ["sm", "lg"],
},
options: {
includeNullVariant: false,
children: {
default: `<div class="v-visible-sr">bling</div>`,
},
template: ({ component, testid }) => html`
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,24 @@ const children = {
<div class="s-user-card--info">
<ul class="s-user-card--awards">
<li class="s-user-card--rep">3,145</li>
<li class="s-award-bling s-award-bling__gold">3</li>
<li class="s-award-bling s-award-bling__silver">9</li>
<li class="s-award-bling s-award-bling__bronze">20</li>
<li>
<span class="s-bling s-bling__gold">
<span class="v-visible-sr">gold bling</span>
</span>
3
</li>
<li>
<span class="s-bling s-bling__silver">
<span class="v-visible-sr">silver bling</span>
</span>
9
</li>
<li>
<span class="s-bling s-bling__bronze">
<span class="v-visible-sr">bronze bling</span>
</span>
20
</li>
</ul>
</div>
</a>
Expand Down
2 changes: 1 addition & 1 deletion packages/stacks-classic/lib/stacks-static.less
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
@import "components/activity-indicator/activity-indicator.less";
@import "components/anchor/anchor.less";
@import "components/avatar/avatar.less";
@import "components/award-bling/award-bling.less";
@import "components/badge/badge.less";
@import "components/banner/banner.less";
@import "components/bling/bling.less";
@import "components/block-link/block-link.less";
@import "components/breadcrumbs/breadcrumbs.less";
@import "components/button/button.less";
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Loading