Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .changeset/thin-days-leave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@stackoverflow/stacks": minor
---

Update popover component to match SHINE styles
Comment thread
ttaylor-stack marked this conversation as resolved.

BREAKING CHANGES:
- `s-popover--arrow` css class has been removed
5 changes: 5 additions & 0 deletions MIGRATION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@
- `.blr-sm` removed
- `.blr-lg` removed

### Components

#### 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.

# Migrating from Stacks Svelte v0 to v1

Coming soon…
Expand Down
98 changes: 0 additions & 98 deletions packages/stacks-classic/lib/components/popover/popover.less
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,6 @@
--_po-d: none;
--_po-wmn: 12rem;
--_po-w: 100%;
// arrow
--_po-arrow-fc: var(--white);
--_po-arrow-b: unset;
--_po-arrow-l: unset;
--_po-arrow-r: unset;
--_po-arrow-t: unset;
--_po-arrow-ps: calc(var(--su6) * -1); // ps suffix used for placement, not positioning value
--_po-arrow-after-b: unset;
--_po-arrow-after-l: unset;
--_po-arrow-after-r: unset;
--_po-arrow-after-t: unset;
--_po-arrow-after-bs: unset;
// content
// --_po-topbar-height assumes the topbar height based on topbar styles
--_po-topbar-height: var(--theme-topbar-height, calc(var(--su-static48) + var(--su-static8)));
Expand All @@ -27,7 +15,6 @@
--_po-bg: var(--black-200);
--_po-bc: var(--bc-light);
--_po-bs: var(--bs-lg);
--_po-arrow-fc: var(--black-200);
});

// MODIFIERS
Expand All @@ -41,91 +28,6 @@
}

// CHILD ELEMENTS
// Arrow
&[data-popper-placement^="top"] > &--arrow,
& &--arrow__bc,
& &--arrow__bl,
& &--arrow__br {
--_po-arrow-b: var(--_po-arrow-ps);
--_po-arrow-after-b: var(--su-static1);
--_po-arrow-after-bs: 2px 2px 5px 0 hsla(0, 0%, 0%, 0.07), 2px 2px 2px -1px hsla(0, 0%, 0%, 0.1);
.highcontrast-mode({ --_po-arrow-after-bs: 1px 1px 0 0 var(--bc-medium); });
}
&[data-popper-placement^="bottom"] > &--arrow,
& &--arrow__tc,
& &--arrow__tl,
& &--arrow__tr {
--_po-arrow-t: var(--_po-arrow-ps);
--_po-arrow-after-t: var(--su-static1);
--_po-arrow-after-bs: -1px -1px 1px 0 hsla(0, 0%, 0%, 0.12);
.highcontrast-mode({ --_po-arrow-after-bs: -1px -1px 0 0 var(--bc-medium); });
}
&[data-popper-placement^="left"] > &--arrow,
& &--arrow__rc,
& &--arrow__rt,
& &--arrow__rb {
--_po-arrow-r: var(--_po-arrow-ps);
--_po-arrow-after-r: var(--su-static1);
--_po-arrow-after-bs: 2px -2px 5px 0 hsla(0, 0%, 0%, 0.07), 2px -2px 2px -1px hsla(0, 0%, 0%, 0.1);
.highcontrast-mode({ --_po-arrow-after-bs: 1px -1px 0 0 var(--bc-medium); });
}
&[data-popper-placement^="right"] > &--arrow,
& &--arrow__lc,
& &--arrow__lt,
& &--arrow__lb {
--_po-arrow-l: var(--_po-arrow-ps);
--_po-arrow-after-l: var(--su-static1);
--_po-arrow-after-bs: -2px 2px 5px 0 hsla(0, 0%, 0%, 0.07), -2px 2px 2px -1px hsla(0, 0%, 0%, 0.1);
.highcontrast-mode({ --_po-arrow-after-bs: -1px 1px 0 0 var(--bc-medium); });
}
& &--arrow__tc,
& &--arrow__bc {
--_po-arrow-l: calc(50% - var(--su6));
}
& &--arrow__lc,
& &--arrow__rc {
--_po-arrow-t: calc(50% - var(--su6));
}
& &--arrow__tr,
.s-popover--arrow__br {
--_po-arrow-r: var(--su12);
}
& &--arrow__rb,
& &--arrow__lb {
--_po-arrow-b: var(--su12);
}
& &--arrow {
&,
&:before,
&:after {
display: block;
height: var(--su12);
position: absolute;
width: var(--su12);
z-index: -1;
}
&:before, // This renders our border
&:after {
content: '';
transform: rotate(45deg);
}
&:after { // This renders our foreground color
bottom: var(--_po-arrow-after-b);
box-shadow: var(--_po-arrow-after-bs);
left: var(--_po-arrow-after-l);
right: var(--_po-arrow-after-r);
top: var(--_po-arrow-after-t);

background: currentColor;
border-radius: calc(var(--su-static1) * 1.5);
}

bottom: var(--_po-arrow-b);
color: var(--_po-arrow-fc);
left: var(--_po-arrow-l);
right: var(--_po-arrow-r);
top: var(--_po-arrow-t);
}
// Close btn
& &--close {
float: right; // Use floats for title wrapping
Expand Down
6 changes: 0 additions & 6 deletions packages/stacks-classic/lib/components/popover/popover.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,12 +231,6 @@ export abstract class BasePopoverController extends Stacks.StacksController {
offset: [0, 10], // The entire popover should be 10px away from the element
},
},
{
name: "arrow",
options: {
element: ".s-popover--arrow",
},
},
],
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ describe("tooltip", () => {
role="tooltip"
data-testid="tooltip"
>
<div class="s-popover--arrow"></div>
<div class="s-popover--content">
<a href="#" data-testid="link">View more</a>
</div>
Expand Down Expand Up @@ -113,7 +112,6 @@ describe("tooltip", () => {
role="tooltip"
data-testid="tooltip"
>
<div class="s-popover--arrow"></div>
<div class="s-popover--content">
<a href="#">View more</a>
</div>
Expand Down
12 changes: 0 additions & 12 deletions packages/stacks-classic/lib/components/popover/tooltip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,22 +137,10 @@ export class TooltipController extends BasePopoverController {
}
}

const arrow = popover.querySelector(".s-popover--arrow");

// clear and set the content of the popover
popover.innerHTML = "";
popover.appendChild(content);

// create the arrow if necessary
if (arrow) {
popover.appendChild(arrow);
} else {
popover.insertAdjacentHTML(
"beforeend",
`<div class="s-popover--arrow"></div>`
);
}

this.scheduleUpdate();

return popover;
Expand Down
67 changes: 0 additions & 67 deletions packages/stacks-docs/_data/popovers.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,77 +20,10 @@
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Used to dismiss a popover"
},
{
"class": ".s-popover--arrow",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "When combined with JavaScript data attributes, this arrow element will be positioned automatically"
},
{
"class": ".s-popover--content",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Wrapper around the popover content to apply appropriate overflow styles"
}
],
"manual": [
{
"class": ".s-popover--arrow__tc",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears top center"
},
{
"class": ".s-popover--arrow__tl",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears top left"
},
{
"class": ".s-popover--arrow__tr",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears top right"
},
{
"class": ".s-popover--arrow__bc",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears bottom center"
},
{
"class": ".s-popover--arrow__bl",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears bottom left"
},
{
"class": ".s-popover--arrow__br",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears bottom right"
},
{
"class": ".s-popover--arrow__rc",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears right center"
},
{
"class": ".s-popover--arrow__rt",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears right top"
},
{
"class": ".s-popover--arrow__rb",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears right bottom"
},
{
"class": ".s-popover--arrow__lc",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears left center"
},
{
"class": ".s-popover--arrow__lt",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears left top"
},
{
"class": ".s-popover--arrow__lb",
"applies": "Child of <code class=\"stacks-code\">.s-popover</code>",
"description": "Popover arrow appears left bottom"
}
]
}
3 changes: 2 additions & 1 deletion packages/stacks-docs/_data/site-navigation.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,8 @@
},
{
"title": "Popovers",
"url": "/product/components/popovers/"
"url": "/product/components/popovers/",
"new": true
},
{
"title": "Post summary",
Expand Down
1 change: 0 additions & 1 deletion packages/stacks-docs/_includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@
<div class="s-popover w-auto wmn-initial wmx-initial"
id="theming-popover"
role="menu">
<div class="s-popover--arrow"></div>
<div class="s-popover--content">
<div class="d-flex fd-column g12">
<div class="d-flex ai-center jc-space-between g8">
Expand Down
1 change: 0 additions & 1 deletion packages/stacks-docs/_includes/layouts/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@
<div class="s-popover w-auto wmn-initial wmx-initial"
id="theming-popover"
role="menu">
<div class="s-popover--arrow"></div>
<div class="d-flex fd-column g12">
<div class="d-flex ai-center jc-space-between g8">
<label class="s-label fs-body1 fw-normal" for="toggle-theme-dark">Dark mode</label>
Expand Down
2 changes: 1 addition & 1 deletion packages/stacks-docs/assets/js/entry.popovers.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ $(document).ready(function() {
load() {
if (this.loaded) { return; }
setTimeout(() => {
Stacks.attachPopover(this.element, `<div class="s-popover wmx1"><div class="s-popover--arrow"></div><ul class="s-menu mxn12 myn8" role="menu"><li role="menuitem"><button class="s-block-link">Share</button></li><li role="menuitem"><button class="s-block-link">Edit</button></li><li role="menuitem"><button class="s-block-link">Flag</button></li><li class="s-menu--divider" role="separator"></li><li role="menuitem"><button class="s-block-link s-block-link__danger">Delete</button></li></ul></div>`, { autoShow: true, toggleOnClick: true, placement: "bottom" });
Stacks.attachPopover(this.element, `<div class="s-popover wmx1"><ul class="s-menu mxn12 myn8" role="menu"><li role="menuitem"><button class="s-block-link">Share</button></li><li role="menuitem"><button class="s-block-link">Edit</button></li><li role="menuitem"><button class="s-block-link">Flag</button></li><li class="s-menu--divider" role="separator"></li><li role="menuitem"><button class="s-block-link s-block-link__danger">Delete</button></li></ul></div>`, { autoShow: true, toggleOnClick: true, placement: "bottom" });
this.loaded = true;
});
},
Expand Down
4 changes: 0 additions & 4 deletions packages/stacks-docs/product/components/menus.html
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@
<div class="flex--item">
<div class="ff-mono mb16">Within a popover</div>
<div class="s-popover is-visible ps-relative ws2 px0 py4">
<div class="s-popover--arrow s-popover--arrow__tc"></div>
<ul class="s-menu" role="menu">
<li role="menuitem">
<a href="#" class="s-block-link">
Expand Down Expand Up @@ -154,7 +153,6 @@
{% endhighlight %}
<div class="stacks-preview--example">
<div class="s-popover is-visible ps-relative ws2 px0 py4">
<div class="s-popover--arrow s-popover--arrow__tc"></div>
<ul class="s-menu" role="menu">
<li class="s-menu--title" role="separator">
Share via
Expand Down Expand Up @@ -206,7 +204,6 @@
{% endhighlight %}
<div class="stacks-preview--example">
<div class="s-popover is-visible ps-relative ws2 px0 py4">
<div class="s-popover--arrow s-popover--arrow__tc"></div>
<ul class="s-menu" role="menu">
<li role="menuitem">
<a href="#" class="s-block-link">
Expand Down Expand Up @@ -275,7 +272,6 @@
{% endhighlight %}
<div class="stacks-preview--example">
<div class="s-popover is-visible ps-relative ws3 px0 py4">
<div class="s-popover--arrow s-popover--arrow__tc"></div>
<div class="s-menu" role="menu">
<fieldset>
<legend class="s-menu--title">Roles</legend>
Expand Down
Loading