Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(popover): add popover component and initial styles #7684

Merged
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5066022
feat(popover): add popover component and initial styles
joshblack Jan 28, 2021
45b03cf
Merge branch 'master' of github.com:carbon-design-system/carbon into …
joshblack Feb 2, 2021
f22e270
chore: check-in work
joshblack Feb 3, 2021
5911ca2
chore: check-in work
joshblack Feb 3, 2021
ad5c4c8
chore: check-in work
joshblack Feb 8, 2021
cb1e563
Merge branch 'master' of github.com:carbon-design-system/carbon into …
joshblack Feb 16, 2021
b712aa0
Merge branch 'master' of github.com:carbon-design-system/carbon into …
joshblack Feb 17, 2021
5086e35
feat(react): add support for caret display
joshblack Feb 18, 2021
3d0503f
Merge branch 'master' of github.com:carbon-design-system/carbon into …
joshblack Feb 18, 2021
ada60bf
refactor(react): move canUseDOM to environment.js
joshblack Feb 18, 2021
35ace2a
refactor(popover): remove parent padding
joshblack Feb 18, 2021
33a2314
fix(components): add import path to helper mixins
joshblack Feb 18, 2021
65cdba8
fix(popover): update caret alignment and remove dev stories
joshblack Feb 24, 2021
fe278b1
Merge branch 'master' into feat/add-popover-component2
joshblack Feb 24, 2021
4269375
Merge branch 'master' into feat/add-popover-component2
joshblack Feb 25, 2021
cccbb24
Update packages/react/src/components/Popover/Popover-story.js
joshblack Mar 3, 2021
0ac692e
Update packages/react/src/components/Popover/Popover-story.js
joshblack Mar 3, 2021
76879f3
Merge branch 'master' into feat/add-popover-component2
joshblack Mar 3, 2021
2715d0d
chore(react): update popover story
joshblack Mar 4, 2021
c4aee59
Merge branch 'master' into feat/add-popover-component2
kodiakhq[bot] Mar 5, 2021
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
233 changes: 233 additions & 0 deletions packages/components/src/components/popover/_popover.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
//
// Copyright IBM Corp. 2016, 2018
//
// This source code is licensed under the Apache-2.0 license found in the
// LICENSE file in the root directory of this source tree.
//

@import '../../globals/scss/vars';
@import '../../globals/scss/helper-mixins';
@import '../../globals/scss/vendor/@carbon/elements/scss/import-once/import-once';

/// Popover component
/// @access private
/// @group popover
@mixin popover {
$popover-text-color: $text-01;
$popover-caret-offset: 1rem;
$popover-box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, 0.2);
$popover-offset: 8px;

.#{$prefix}--popover {
position: absolute;
z-index: z('floating');
joshblack marked this conversation as resolved.
Show resolved Hide resolved
display: none;
}

.#{$prefix}--popover--relative {
position: relative;
}

.#{$prefix}--popover--open {
display: block;
}

.#{$prefix}--popover-contents {
@include box-shadow;

position: relative;
width: max-content;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we've been avoiding this but have we already dropped support for IE?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@emyarod the Popover work is targetting post-IE11 (v11) stuff 👀

max-width: rem(368px);
color: $popover-text-color;
background-color: $ui-01;
border-radius: 2px;
}

.#{$prefix}--popover--light .#{$prefix}--popover-contents {
background-color: $ui-background;
}

.#{$prefix}--popover--high-contrast .#{$prefix}--popover-contents {
color: $inverse-01;
background-color: $inverse-02;
}

.#{$prefix}--popover--caret .#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret .#{$prefix}--popover-contents::after {
position: absolute;
display: inline-block;
width: rem(8px);
height: rem(8px);
background-color: inherit;
content: '';
}

.#{$prefix}--popover--caret .#{$prefix}--popover-contents::before {
z-index: -1;
box-shadow: $popover-box-shadow;
}

// The popover's tooltip is created by drawing two 8px x 8px boxes, one for
// rendering the box-shadow that the popover content uses and another for
// layering on top of this box to create an effect of a popover caret with a
// box-shadow. The layer with the box-shadow is rendered behind the popover
// content, while the other is rendered oabove of the popover content.

//-----------------------------------------------------------------------------
// Top
//-----------------------------------------------------------------------------
.#{$prefix}--popover--top,
.#{$prefix}--popover--top-left,
.#{$prefix}--popover--top-right {
bottom: 0;
transform: translateY(calc(100% + #{$popover-offset}));
}

.#{$prefix}--popover--caret.#{$prefix}--popover--top
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--top
.#{$prefix}--popover-contents::after {
top: 0;
left: 50%;
transform: translate(-50%, -50%) rotate(45deg);
}

.#{$prefix}--popover--top-left .#{$prefix}--popover-contents {
margin-left: 0;
}

.#{$prefix}--popover--caret.#{$prefix}--popover--top-left
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--top-left
.#{$prefix}--popover-contents::after {
top: 0;
left: $popover-caret-offset;
transform: translate(-50%, -50%) rotate(45deg);
}

.#{$prefix}--popover--top-right .#{$prefix}--popover-contents {
margin-right: 0;
}

.#{$prefix}--popover--caret.#{$prefix}--popover--top-right
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--top-right
.#{$prefix}--popover-contents::after {
top: 0;
right: $popover-caret-offset;
transform: translate(50%, -50%) rotate(45deg);
}

//-----------------------------------------------------------------------------
// Bottom
//-----------------------------------------------------------------------------
.#{$prefix}--popover--bottom,
.#{$prefix}--popover--bottom-left,
.#{$prefix}--popover--bottom-right {
top: 0;
transform: translateY(calc(-100% - #{$popover-offset}));
}

.#{$prefix}--popover--caret.#{$prefix}--popover--bottom
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--bottom
.#{$prefix}--popover-contents::after {
bottom: 0;
left: 50%;
transform: translate(-50%, 50%) rotate(45deg);
}

.#{$prefix}--popover--caret.#{$prefix}--popover--bottom-left
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--bottom-left
.#{$prefix}--popover-contents::after {
bottom: 0;
left: $popover-caret-offset;
transform: translate(-50%, 50%) rotate(45deg);
}

.#{$prefix}--popover--caret.#{$prefix}--popover--bottom-right
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--bottom-right
.#{$prefix}--popover-contents::after {
right: $popover-caret-offset;
bottom: 0;
transform: translate(50%, 50%) rotate(45deg);
}

//-----------------------------------------------------------------------------
// Left
//-----------------------------------------------------------------------------
.#{$prefix}--popover--left,
.#{$prefix}--popover--left-top,
.#{$prefix}--popover--left-bottom {
margin-left: $popover-offset;
}

.#{$prefix}--popover--caret.#{$prefix}--popover--left
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--left
.#{$prefix}--popover-contents::after {
top: 50%;
left: 0;
transform: translate(-50%, -50%) rotate(45deg);
}

.#{$prefix}--popover--caret.#{$prefix}--popover--left-bottom
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--left-bottom
.#{$prefix}--popover-contents::after {
bottom: $popover-caret-offset;
left: 0;
transform: translate(-50%, 50%) rotate(45deg);
}

.#{$prefix}--popover--caret.#{$prefix}--popover--left-top
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--left-top
.#{$prefix}--popover-contents::after {
top: $popover-caret-offset;
left: 0;
transform: translate(-50%, -50%) rotate(45deg);
}

//-----------------------------------------------------------------------------
// Right
//-----------------------------------------------------------------------------
.#{$prefix}--popover--right,
.#{$prefix}--popover--right-top,
.#{$prefix}--popover--right-bottom {
margin-right: $popover-offset;
}

.#{$prefix}--popover--caret.#{$prefix}--popover--right
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--right
.#{$prefix}--popover-contents::after {
top: 50%;
right: 0;
transform: translate(50%, -50%) rotate(45deg);
}

.#{$prefix}--popover--caret.#{$prefix}--popover--right-bottom
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--right-bottom
.#{$prefix}--popover-contents::after {
right: 0;
bottom: $popover-caret-offset;
transform: translate(50%, 50%) rotate(45deg);
}

.#{$prefix}--popover--caret.#{$prefix}--popover--right-top
.#{$prefix}--popover-contents::before,
.#{$prefix}--popover--caret.#{$prefix}--popover--right-top
.#{$prefix}--popover-contents::after {
top: $popover-caret-offset;
right: 0;
transform: translate(50%, -50%) rotate(45deg);
}
}

@include exports('popover') {
@include popover;
}
1 change: 1 addition & 0 deletions packages/components/src/globals/scss/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ $deprecations--message: 'Deprecated code was found, this code will be removed be
//-------------------------------------
@import '../../components/pagination/unstable_pagination';
@import '../../components/ui-shell/ui-shell';
@import '../../components/popover/popover';

//-------------------------------------
// 🙈 Hidden (Not exposed on website)
Expand Down
3 changes: 2 additions & 1 deletion packages/react/.storybook/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ $prefix: 'bx';
@import '~carbon-components/scss/globals/grid/grid';
@import '~carbon-components/src/globals/scss/functions';

@import '~carbon-components/src/components/accordion/accordion';
@import '~carbon-components/src/components/button/button';
@import '~carbon-components/src/components/copy-button/copy-button';
@import '~carbon-components/src/components/file-uploader/file-uploader';
Expand Down Expand Up @@ -63,7 +64,7 @@ $prefix: 'bx';
@import '~carbon-components/src/components/treeview/treeview';
@import '~carbon-components/src/components/pagination/pagination';
@import '~carbon-components/src/components/pagination/unstable_pagination';
@import '~carbon-components/src/components/accordion/accordion';
@import '~carbon-components/src/components/popover/popover';
@import '~carbon-components/src/components/progress-indicator/progress-indicator';
@import '~carbon-components/src/components/breadcrumb/breadcrumb';
@import '~carbon-components/src/components/toolbar/toolbar';
Expand Down
Loading