@ngneat/cmdk
Version:
<p align="center"> <img width="20%" height="20%" src="./src/assets/ngneat%20cdk.svg"> </p>
474 lines (471 loc) • 10.4 kB
CSS
.raycast .cmdk-group, .raycast .cmdk-list, .raycast .cmdk-command {
display: block;
}
.raycast .cmdk-command {
max-width: 640px;
background: var(--gray1);
border-radius: 12px;
padding: 8px 0;
font-family: var(--font-sans);
box-shadow: var(--cmdk-shadow);
border: 1px solid var(--gray6);
position: relative;
}
.dark .raycast .cmdk-command {
background: var(--gray2);
border: 0;
}
.dark .raycast .cmdk-command:after {
content: "";
background: linear-gradient(to right, var(--gray6) 20%, var(--gray6) 40%, var(--gray10) 50%, var(--gray10) 55%, var(--gray6) 70%, var(--gray6) 100%);
z-index: -1;
position: absolute;
border-radius: 12px;
top: -1px;
left: -1px;
width: calc(100% + 2px);
height: calc(100% + 2px);
animation: shine 3s ease forwards 0.1s;
background-size: 200% auto;
}
.dark .raycast .cmdk-command:before {
content: "";
z-index: -1;
position: absolute;
border-radius: 12px;
top: -1px;
left: -1px;
width: calc(100% + 2px);
height: calc(100% + 2px);
box-shadow: 0 0 0 1px transparent;
animation: border 1s linear forwards 0.5s;
}
.raycast .cmdk-command kbd {
font-family: var(--font-sans);
background: var(--gray3);
color: var(--gray11);
height: 20px;
width: 20px;
border-radius: 4px;
padding: 0 4px;
display: flex;
align-items: center;
justify-content: center;
}
.raycast .cmdk-command kbd:first-of-type {
margin-left: 8px;
}
.raycast .cmdk-input {
font-family: var(--font-sans);
border: none;
width: 100%;
font-size: 15px;
padding: 8px 16px;
outline: none;
background: var(--bg);
color: var(--gray12);
}
.raycast .cmdk-input::placeholder {
color: var(--gray9);
}
.dark .raycast .cmdk-raycast-top-shine {
background: linear-gradient(90deg, rgba(56, 189, 248, 0), var(--gray5) 20%, var(--gray9) 67.19%, rgba(236, 72, 153, 0));
height: 1px;
position: absolute;
top: -1px;
width: 100%;
z-index: -1;
opacity: 0;
animation: showTopShine 0.1s ease forwards 0.2s;
}
.raycast .cmdk-raycast-loader {
--loader-color: var(--gray9);
border: 0;
width: 100%;
width: 100%;
left: 0;
height: 1px;
background: var(--gray6);
position: relative;
overflow: visible;
display: block;
margin-top: 12px;
margin-bottom: 12px;
}
.raycast .cmdk-raycast-loader:after {
content: "";
width: 50%;
height: 1px;
position: absolute;
background: linear-gradient(90deg, transparent 0%, var(--loader-color) 50%, transparent 100%);
top: -1px;
opacity: 0;
animation-duration: 1.5s;
animation-delay: 1s;
animation-timing-function: ease;
animation-name: loading;
}
.raycast .cmdk-item {
content-visibility: auto;
cursor: pointer;
height: 40px;
border-radius: 8px;
font-size: 14px;
display: flex;
align-items: center;
gap: 8px;
padding: 0 8px;
color: var(--gray12);
user-select: none;
will-change: background, color;
transition: all 150ms ease;
transition-property: none;
width: 100%;
}
.raycast .cmdk-item[aria-selected=true] {
background: var(--gray4);
color: var(--gray12);
}
.raycast .cmdk-item[aria-disabled=true] {
color: var(--gray8);
cursor: not-allowed;
}
.raycast .cmdk-item:active {
transition-property: background;
background: var(--gray4);
}
.raycast .cmdk-item:focus {
outline: none;
}
.raycast .cmdk-item:first-child {
margin-top: 8px;
}
.raycast .cmdk-item + .cmdk-item {
margin-top: 4px;
}
.raycast .cmdk-item svg {
width: 18px;
height: 18px;
}
.raycast .cmdk-raycast-meta {
margin-left: auto;
color: var(--gray11);
font-size: 13px;
}
.raycast .cmdk--list {
padding: 0 8px;
height: 393px;
overflow: auto;
overscroll-behavior: contain;
scroll-padding-block-end: 40px;
transition: 100ms ease;
transition-property: height;
padding-bottom: 40px;
}
.raycast .cmdk-raycast-open-trigger,
.raycast .cmdk-raycast-subcommand-trigger {
color: var(--gray11);
padding: 0px 4px 0px 8px;
border-radius: 6px;
font-weight: 500;
font-size: 12px;
height: 28px;
letter-spacing: -0.25px;
}
.raycast .cmdk-raycast-clipboard-icon,
.raycast .cmdk-raycast-hammer-icon {
width: 20px;
height: 20px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
}
.raycast .cmdk-raycast-clipboard-icon svg,
.raycast .cmdk-raycast-hammer-icon svg {
width: 14px;
height: 14px;
}
.raycast .cmdk-raycast-clipboard-icon {
background: linear-gradient(to bottom, #f55354, #eb4646);
}
.raycast .cmdk-raycast-hammer-icon {
background: linear-gradient(to bottom, #6cb9a3, #2c6459);
}
.raycast .cmdk-raycast-open-trigger {
display: flex;
align-items: center;
color: var(--gray12);
margin-left: auto;
}
.raycast .cmdk-raycast-subcommand-trigger {
display: flex;
align-items: center;
gap: 4px;
right: 8px;
bottom: 8px;
}
.raycast .cmdk-raycast-subcommand-trigger svg {
width: 14px;
height: 14px;
}
.raycast .cmdk-raycast-subcommand-trigger hr {
height: 100%;
background: var(--gray6);
border: 0;
width: 1px;
}
.raycast .cmdk-raycast-subcommand-trigger[aria-expanded=true], .raycast .cmdk-raycast-subcommand-trigger:hover {
background: var(--gray4);
}
.raycast .cmdk-raycast-subcommand-trigger[aria-expanded=true] kbd, .raycast .cmdk-raycast-subcommand-trigger:hover kbd {
background: var(--gray7);
}
.raycast .cmdk-separator hr {
height: 1px;
width: 100%;
background: var(--gray5);
margin: 4px 0;
}
.raycast *:not([hidden]) + .cmdk-group {
margin-top: 8px;
}
.raycast .cmdk-group-label {
user-select: none;
font-size: 12px;
color: var(--gray11);
padding: 0 8px;
display: flex;
align-items: center;
}
.raycast .cmdk-raycast-footer {
display: flex;
height: 40px;
align-items: center;
width: 100%;
position: absolute;
background: var(--gray1);
bottom: 0;
padding: 8px;
border-top: 1px solid var(--gray6);
border-radius: 0 0 12px 12px;
}
.raycast .cmdk-raycast-footer svg {
width: 20px;
height: 20px;
filter: grayscale(1);
}
.raycast .cmdk-raycast-footer hr {
height: 12px;
width: 1px;
border: 0;
background: var(--gray6);
margin: 0 4px 0px 12px;
}
@media (prefers-color-scheme: dark) {
.raycast .cmdk-raycast-footer {
background: var(--gray2);
}
}
.raycast .cmdk-raycast-dialog {
z-index: var(--layer-portal);
position: fixed;
left: 50%;
top: var(--page-top);
transform: translateX(-50%);
}
.raycast .cmdk-raycast-dialog [cmdk] {
width: 640px;
transform-origin: center center;
animation: dialogIn var(--transition-fast) forwards;
}
.raycast .cmdk-raycast-dialog[data-state=closed] [cmdk] {
animation: dialogOut var(--transition-fast) forwards;
}
.raycast .cmdk-empty {
font-size: 14px;
display: flex;
align-items: center;
justify-content: center;
height: 64px;
white-space: pre-wrap;
color: var(--gray11);
}
.raycast .cmdk-list {
height: 393px;
overflow: auto;
-ms-scroll-chaining: none;
overscroll-behavior: contain;
scroll-padding-block-end: 40px;
transition: 0.1s ease;
transition-property: height;
padding: 0 8px 40px;
}
@keyframes loading {
0% {
opacity: 0;
transform: translateX(0);
}
50% {
opacity: 1;
transform: translateX(100%);
}
100% {
opacity: 0;
transform: translateX(0);
}
}
@keyframes shine {
to {
background-position: 200% center;
opacity: 0;
}
}
@keyframes border {
to {
box-shadow: 0 0 0 1px var(--gray6);
}
}
@keyframes showTopShine {
to {
opacity: 1;
}
}
.raycast-submenu {
animation-duration: 0.2s;
animation-timing-function: ease;
animation-fill-mode: forwards;
transform-origin: var(--radix-popover-content-transform-origin);
}
.raycast-submenu .cmdk-command {
display: flex;
flex-direction: column;
width: 320px;
border: 1px solid var(--gray6);
background: var(--gray2);
border-radius: 8px;
}
.raycast-submenu .cmdk-list {
padding: 8px;
overflow: auto;
overscroll-behavior: contain;
transition: 100ms ease;
transition-property: height;
}
.raycast-submenu .cmdk-item {
height: 40px;
cursor: pointer;
border-radius: 8px;
font-size: 13px;
display: flex;
align-items: center;
gap: 8px;
padding: 0 8px;
color: var(--gray12);
user-select: none;
will-change: background, color;
transition: all 150ms ease;
transition-property: none;
width: 100%;
}
.raycast-submenu .cmdk-item[aria-selected=true] {
background: var(--gray5);
color: var(--gray12);
}
.raycast-submenu .cmdk-item[aria-selected=true] .cmdk-raycast-submenu-shortcuts kbd {
background: var(--gray7);
}
.raycast-submenu .cmdk-item[aria-disabled=true] {
color: var(--gray8);
cursor: not-allowed;
}
.raycast-submenu .cmdk-item:focus {
outline: none;
}
.raycast-submenu .cmdk-item svg {
width: 16px;
height: 16px;
}
.raycast-submenu .cmdk-item .cmdk-raycast-submenu-shortcuts {
display: flex;
margin-left: auto;
gap: 2px;
}
.raycast-submenu .cmdk-item .cmdk-raycast-submenu-shortcuts kbd {
font-family: var(--font-sans);
background: var(--gray5);
color: var(--gray11);
height: 20px;
width: 20px;
border-radius: 4px;
padding: 0 4px;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
}
.raycast-submenu .cmdk-item .cmdk-raycast-submenu-shortcuts kbd:first-of-type {
margin-left: 8px;
}
.raycast-submenu .cmdk-group-label {
text-transform: capitalize;
font-size: 12px;
color: var(--gray11);
font-weight: 500;
margin-bottom: 8px;
margin-top: 8px;
margin-left: 4px;
}
.raycast-submenu .cmdk-input {
padding: 12px;
font-family: var(--font-sans);
border: 0;
border-top: 1px solid var(--gray6);
font-size: 13px;
background: transparent;
margin-top: auto;
width: 100%;
outline: 0;
border-radius: 0;
}
.raycast-submenu[data-state=open] {
animation-name: slideIn;
}
.raycast-submenu[data-state=closed] {
animation-name: slideOut;
}
.raycast-submenu .cmdk-empty {
display: flex;
align-items: center;
justify-content: center;
height: 64px;
white-space: pre-wrap;
font-size: 14px;
color: var(--gray11);
}
@keyframes slideIn {
0% {
opacity: 0;
transform: scale(0.96);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes slideOut {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(0.96);
}
}
@media (max-width: 640px) {
.raycast .cmdk-input {
font-size: 16px;
}
}