index.css 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. @import "@opencode-ai/ui/styles/tailwind";
  2. @import "@opencode-ai/ui/v2/styles/tailwind.css";
  3. @font-face {
  4. font-family: "JetBrainsMono Nerd Font Mono";
  5. src: url("/assets/JetBrainsMonoNerdFontMono-Regular.woff2") format("woff2");
  6. font-weight: normal;
  7. font-style: normal;
  8. }
  9. @font-face {
  10. font-family: "Inter";
  11. src: url("/assets/Inter.ttf") format("truetype");
  12. font-weight: 100 900;
  13. font-style: normal;
  14. }
  15. @layer components {
  16. @keyframes session-progress-whip {
  17. 0% {
  18. clip-path: inset(0 100% 0 0 round 999px);
  19. animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
  20. }
  21. 48% {
  22. clip-path: inset(0 0 0 0 round 999px);
  23. animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
  24. }
  25. 100% {
  26. clip-path: inset(0 0 0 100% round 999px);
  27. }
  28. }
  29. [data-component="session-progress"] {
  30. position: absolute;
  31. inset: 0 0 auto;
  32. height: 2px;
  33. overflow: hidden;
  34. pointer-events: none;
  35. opacity: 1;
  36. transition: opacity 220ms ease-out;
  37. }
  38. [data-component="session-progress"][data-state="hiding"] {
  39. opacity: 0;
  40. }
  41. [data-component="session-progress-bar"] {
  42. width: 100%;
  43. height: 100%;
  44. border-radius: 999px;
  45. clip-path: inset(0 100% 0 0 round 999px);
  46. will-change: clip-path;
  47. }
  48. [data-component="getting-started"] {
  49. container-type: inline-size;
  50. container-name: getting-started;
  51. }
  52. [data-component="dropdown-menu-content"].desktop-app-menu,
  53. [data-component="dropdown-menu-sub-content"].desktop-app-menu {
  54. min-width: 160px;
  55. padding: 2px;
  56. }
  57. [data-component="dropdown-menu-content"].desktop-app-menu {
  58. width: 160px;
  59. }
  60. [data-component="dropdown-menu-sub-content"].desktop-app-menu {
  61. width: max-content;
  62. min-width: 240px;
  63. max-width: min(320px, calc(100vw - 24px));
  64. }
  65. [data-component="dropdown-menu-content"].desktop-app-menu [data-slot="dropdown-menu-group-label"] {
  66. display: flex;
  67. align-items: center;
  68. height: 28px;
  69. padding: 0 12px;
  70. font-size: var(--font-size-x-small);
  71. font-weight: var(--font-weight-medium);
  72. line-height: 1;
  73. color: var(--text-weak);
  74. }
  75. [data-component="dropdown-menu-content"].desktop-app-menu [data-slot="dropdown-menu-item"],
  76. [data-component="dropdown-menu-content"].desktop-app-menu [data-slot="dropdown-menu-sub-trigger"],
  77. [data-component="dropdown-menu-sub-content"].desktop-app-menu [data-slot="dropdown-menu-item"],
  78. [data-component="dropdown-menu-sub-content"].desktop-app-menu [data-slot="dropdown-menu-sub-trigger"] {
  79. min-height: 28px;
  80. padding: 0 12px;
  81. gap: 8px;
  82. font-weight: var(--font-weight-regular);
  83. line-height: 1;
  84. }
  85. [data-component="dropdown-menu-content"].desktop-app-menu [data-slot="dropdown-menu-item-label"],
  86. [data-component="dropdown-menu-sub-content"].desktop-app-menu [data-slot="dropdown-menu-item-label"] {
  87. white-space: nowrap;
  88. }
  89. [data-slot="desktop-app-menu-keybind"] {
  90. margin-left: auto;
  91. color: var(--text-weak);
  92. font-size: var(--font-size-x-small);
  93. font-weight: var(--font-weight-regular);
  94. white-space: nowrap;
  95. }
  96. [data-slot="desktop-app-menu-chevron"] {
  97. display: flex;
  98. margin-left: auto;
  99. color: var(--icon-base);
  100. }
  101. [data-component="getting-started-actions"] {
  102. display: flex;
  103. flex-direction: column;
  104. gap: 0.75rem; /* gap-3 */
  105. }
  106. [data-component="getting-started-actions"] > [data-component="button"] {
  107. width: 100%;
  108. }
  109. @container getting-started (min-width: 17rem) {
  110. [data-component="getting-started-actions"] {
  111. flex-direction: row;
  112. align-items: center;
  113. }
  114. [data-component="getting-started-actions"] > [data-component="button"] {
  115. width: auto;
  116. }
  117. }
  118. [data-slot="titlebar-update-loader"] {
  119. display: block;
  120. flex-shrink: 0;
  121. margin: 1px;
  122. width: 12px;
  123. height: 12px;
  124. border-radius: 9999px;
  125. border: 2px solid color-mix(in srgb, var(--v2-icon-icon-accent) 30%, transparent);
  126. border-top-color: var(--v2-icon-icon-accent);
  127. animation: titlebar-update-loader-spin 0.67s linear infinite;
  128. transform-origin: 50% 50%;
  129. }
  130. @media (prefers-reduced-motion: reduce) {
  131. [data-slot="titlebar-update-loader"] {
  132. animation: none;
  133. }
  134. }
  135. @keyframes titlebar-update-loader-spin {
  136. to {
  137. transform: rotate(360deg);
  138. }
  139. }
  140. @keyframes fade-in {
  141. from {
  142. opacity: 0;
  143. }
  144. to {
  145. opacity: 1;
  146. }
  147. }
  148. }