UNPKG

@vtmn/css-popover

Version:

Decathlon Design System - Vitamin specific CSS styles for popover component

285 lines (249 loc) 5.28 kB
@keyframes fade-in{ from{ opacity:0; } to{ opacity:1; } } @keyframes slide-left{ from{ transform:translateX(120%); } to{ transform:translateX(0); } } @keyframes slide-right{ from{ transform:translateX(0); } to{ transform:translateX(120%); } } @keyframes slide-down{ from{ transform:translateY(0); } to{ transform:translateY(120%); } } @keyframes slide-up{ from{ transform:translateY(120%); } to{ transform:translateY(0); } } @keyframes show-up{ from{ bottom:0; } to{ bottom:15px; } } @keyframes fade-out{ from{ opacity:1; } to{ opacity:0; } } @keyframes vanish{ from{ bottom:15px; } to{ bottom:0; } } @keyframes linear-indeterminate{ 0%{ transform:translateX(-100%); } 60%{ transform:translateX(105%); } 100%{ transform:translateX(105%); } } @keyframes circle-indeterminate{ 0%{ stroke-dashoffset:400; transform:rotate(-0.25turn); } 50%{ transform:rotate(0.75turn); stroke-dashoffset:0; } 100%{ stroke-dashoffset:400; transform:rotate(2.75turn); } } @keyframes circle-indeterminate-small{ 0%{ stroke-dashoffset:200; transform:rotate(-0.25turn); } 50%{ transform:rotate(0.75turn); stroke-dashoffset:0; } 100%{ stroke-dashoffset:200; transform:rotate(2.75turn); } } @keyframes shimmer{ from{ transform:translateX(-100%); } to{ transform:translateX(100%); } } .vtmn-popover{ position:relative; cursor:pointer; font-family:'Roboto', 'system-ui', '-apple-system', sans-serif; outline:0; } .vtmn-popover > [role='dialog'] > .vtmn-popover_title{ margin-block:0.25rem; margin-inline:0; font-family:'Roboto', 'system-ui', '-apple-system', sans-serif; font-weight:700; font-size:1rem; line-height:1.5; align-self:flex-start; } .vtmn-popover > [role='dialog'] > .vtmn-popover_text{ margin-block:0.5rem; margin-inline:0; font-family:'Roboto', 'system-ui', '-apple-system', sans-serif; font-weight:400; font-size:0.875rem; line-height:1.25rem; align-self:flex-start; text-align:left; } .vtmn-popover > [role='dialog'] > button{ margin:0; align-self:flex-end; } .vtmn-popover > [role='dialog']{ box-sizing:border-box; min-inline-size:15.625rem; inline-size:auto; box-shadow:0 0.75rem 0.75rem 0 hsla(200, 100%, 24.5%, 0.1); border-radius:8px; background-color:hsl(200, 100%, 4.7%); color:hsl(0, 0%, 100%); display:none; position:absolute; padding:1rem; animation:fade-in 200ms ease-in-out forwards; z-index:200; cursor:default; } .vtmn-popover > [role='dialog']::after{ border-radius:0; content:' '; block-size:0; inline-size:0; position:absolute; box-shadow:none; } .vtmn-popover:focus-within > [role='dialog']{ display:flex; flex-direction:column; justify-content:space-between; pointer-events:auto; } .vtmn-popover:focus-visible{ outline:none; box-shadow:0 0 0 0.25rem hsl(210, 14.3%, 94.5%), 0 0 0 0.375rem hsl(200, 100%, 4.7%); } .vtmn-popover[data-position^='top'] > [role='dialog']{ bottom:calc(100% + 1.5em); left:50%; transform:translateX(-50%); } .vtmn-popover[data-position^='top'] > [role='dialog']::after{ border-left:solid transparent 0.6em; border-right:solid transparent 0.6em; border-top:solid hsl(200, 100%, 4.7%) 0.65em; bottom:-0.6em; left:50%; transform:translateX(-50%); } .vtmn-popover[data-position='top-left'] > [role='dialog']::after{ left:90%; } .vtmn-popover[data-position='top-left'] > [role='dialog']{ transform:translateX(-90%); } .vtmn-popover[data-position='top-right'] > [role='dialog']::after{ left:10%; } .vtmn-popover[data-position='top-right'] > [role='dialog']{ transform:translateX(-10%); } .vtmn-popover[data-position^='bottom'] > [role='dialog']{ top:calc(100% + 1.5em); left:50%; transform:translateX(-50%); } .vtmn-popover[data-position^='bottom'] > [role='dialog']::after{ border-left:solid transparent 0.6em; border-right:solid transparent 0.6em; border-bottom:solid hsl(200, 100%, 4.7%) 0.65em; top:-0.6em; left:50%; transform:translateX(-50%); } .vtmn-popover[data-position='bottom-left'] > [role='dialog']::after{ left:90%; } .vtmn-popover[data-position='bottom-left'] > [role='dialog']{ transform:translateX(-90%); } .vtmn-popover[data-position='bottom-right'] > [role='dialog']::after{ left:10%; } .vtmn-popover[data-position='bottom-right'] > [role='dialog']{ transform:translateX(-10%); } .vtmn-popover[data-position='left'] > [role='dialog']{ top:50%; left:-1.5em; transform:translate(-100%, -50%); } .vtmn-popover[data-position='left'] > [role='dialog']::after{ border-top:solid transparent 0.6em; border-bottom:solid transparent 0.6em; border-left:solid hsl(200, 100%, 4.7%) 0.65em; right:-0.6em; top:50%; transform:translateY(-50%); } .vtmn-popover[data-position='right'] > [role='dialog']{ top:50%; right:-1.5em; transform:translate(100%, -50%); } .vtmn-popover[data-position='right'] > [role='dialog']::after{ border-top:solid transparent 0.6em; border-bottom:solid transparent 0.6em; border-right:solid hsl(200, 100%, 4.7%) 0.65em; left:-0.6em; top:50%; transform:translateY(-50%); }