rail.scss 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. body {
  2. --ide-rail-background: var(--bg-primary-themed);
  3. --ide-rail-color: var(--content-primary-themed);
  4. --ide-rail-link-hover-color: var(--content-primary-themed);
  5. --ide-rail-link-background: var(--bg-primary-themed);
  6. --ide-rail-link-hover-background: var(--bg-secondary-themed);
  7. --ide-rail-border-colour: var(--border-divider-themed);
  8. --ide-rail-header-subdued-button-color: var(--content-primary-themed);
  9. --ide-rail-header-subdued-button-hover-background: var(--bg-tertiary-themed);
  10. --ide-rail-link-active-color: var(--green-10);
  11. --ide-rail-link-active-background: var(--green-70);
  12. }
  13. @include theme('light') {
  14. --ide-rail-link-active-color: var(--green-70);
  15. --ide-rail-link-active-background: var(--bg-accent-03);
  16. }
  17. .rail-panel-header {
  18. display: flex;
  19. justify-content: space-between;
  20. align-items: center;
  21. padding: var(--spacing-03) var(--spacing-04);
  22. background-color: var(--ide-rail-background);
  23. .rail-panel-header-button-subdued {
  24. @include ol-button-variant(
  25. var(--ide-rail-header-subdued-button-color),
  26. transparent,
  27. transparent,
  28. var(--ide-rail-header-subdued-button-hover-background),
  29. transparent,
  30. true,
  31. var(--content-disabled-themed),
  32. var(--bg-disabled-themed),
  33. var(--bg-disabled-themed)
  34. );
  35. }
  36. }
  37. .rail-panel-header-actions {
  38. display: flex;
  39. align-items: center;
  40. gap: var(--spacing-01);
  41. }
  42. .rail-panel-title {
  43. font-size: var(--font-size-02);
  44. line-height: var(--line-height-02);
  45. color: var(--ide-rail-color);
  46. margin-bottom: 0;
  47. font-weight: bold;
  48. width: 100%;
  49. }
  50. .ide-rail-tab-button {
  51. border: 0;
  52. background: none;
  53. }
  54. .ide-rail-tab-link {
  55. border-radius: var(--border-radius-base);
  56. display: block;
  57. margin: 0 auto;
  58. height: 32px;
  59. width: 32px;
  60. text-align: center;
  61. padding: 0;
  62. color: var(--ide-rail-color);
  63. background-color: var(--ide-rail-link-background);
  64. position: relative;
  65. overflow: visible;
  66. &.disabled {
  67. color: var(--content-disabled-themed);
  68. }
  69. &:visited,
  70. &:focus {
  71. color: var(--ide-rail-color);
  72. }
  73. &:focus-visible {
  74. background-color: transparent;
  75. }
  76. &:hover {
  77. color: var(--ide-rail-link-hover-color);
  78. background-color: var(--ide-rail-link-hover-background);
  79. }
  80. .ide-rail-tab-link-icon {
  81. line-height: 32px;
  82. font-size: 20px;
  83. }
  84. .ide-rail-tab-img-icon {
  85. width: 20px;
  86. max-height: 32px;
  87. object-fit: contain;
  88. }
  89. &.open-rail {
  90. color: var(--ide-rail-link-active-color);
  91. background-color: var(--ide-rail-link-active-background);
  92. &::after {
  93. $indicator-height: 3px;
  94. border-top-left-radius: 12px;
  95. border-top-right-radius: 12px;
  96. content: '';
  97. position: absolute;
  98. bottom: 0;
  99. left: 4px;
  100. box-sizing: border-box;
  101. width: 24px;
  102. height: $indicator-height;
  103. background-color: var(--ide-rail-link-active-color);
  104. }
  105. }
  106. .badge {
  107. position: absolute;
  108. top: -4px;
  109. right: -4px;
  110. pointer-events: none;
  111. z-index: 10;
  112. padding: var(--spacing-00) var(--spacing-02);
  113. border-radius: var(--border-radius-full);
  114. }
  115. }
  116. .ide-rail {
  117. height: 100%;
  118. padding: var(--spacing-02);
  119. background: var(--ide-rail-background);
  120. border-right: 1px solid var(--ide-rail-border-colour);
  121. width: 40px;
  122. }
  123. .ide-rail-content {
  124. height: 100%;
  125. .logs-pane {
  126. top: 0;
  127. }
  128. .tab-pane {
  129. height: 100%;
  130. }
  131. }
  132. .ide-rail-tab-content {
  133. height: 100%;
  134. width: 100%;
  135. position: relative;
  136. }
  137. .ide-rail-tabs-nav {
  138. height: 100%;
  139. display: flex;
  140. flex-flow: column nowrap;
  141. gap: var(--spacing-02);
  142. padding-bottom: var(--spacing-04);
  143. }
  144. .ide-rail-tabs-wrapper {
  145. flex: 1;
  146. display: flex;
  147. flex-direction: column;
  148. gap: var(--spacing-02);
  149. }
  150. .ide-rail-tab-dropdown {
  151. border: 0;
  152. &.dropdown-toggle::after {
  153. display: none;
  154. }
  155. }
  156. .ide-rail-overflow-dropdown {
  157. min-width: 0;
  158. background-color: var(--ide-rail-background);
  159. &.show {
  160. display: flex;
  161. flex-direction: column;
  162. gap: var(--spacing-02);
  163. }
  164. }
  165. .new-error-logs-promo {
  166. display: flex;
  167. gap: var(--spacing-04);
  168. font-weight: bold;
  169. font-size: var(--font-size-02);
  170. line-height: var(--line-height-02);
  171. background-color: black;
  172. border-radius: var(--border-radius-base);
  173. }
  174. .separated-rail-tab {
  175. display: flex;
  176. flex-direction: column;
  177. align-items: center;
  178. justify-content: center;
  179. margin-top: 8px;
  180. isolation: isolate;
  181. }
  182. .separated-rail-tab::before {
  183. display: inline-block;
  184. content: '';
  185. border-top: 1px solid var(--border-divider-themed);
  186. width: 100%;
  187. transform: translateY(-12px);
  188. }