threads-lists.less 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. //
  2. // Threads Lists
  3. // --------------------------------------------------
  4. .threads-list {
  5. margin-bottom: @line-height-computed;
  6. }
  7. // Thread layout
  8. // --------------------------------------------------
  9. // Remove side padding from thread row
  10. .threads-list .thread-new,
  11. .threads-list .thread-read,
  12. .threads-list .thread-preview {
  13. padding-left: 0px;
  14. padding-right: 0px;
  15. }
  16. // Icon column
  17. .threads-list .thread-icon {
  18. float: left;
  19. width: @thread-col-icon;
  20. @media screen and (max-width: @screen-sm-max) {
  21. width: @thread-col-icon-mb;
  22. }
  23. }
  24. // Options column
  25. .thread-ops-one .thread-options {
  26. float: right;
  27. width: @thread-col-option;
  28. @media screen and (max-width: @screen-sm-max) {
  29. width: @thread-col-option-mb;
  30. }
  31. }
  32. .thread-ops-two .thread-options {
  33. float: right;
  34. width: @thread-col-options;
  35. @media screen and (max-width: @screen-sm-max) {
  36. width: @thread-col-options-mb;
  37. }
  38. }
  39. // Thready body left space
  40. .thread-main {
  41. margin-left: @thread-col-icon;
  42. @media screen and (max-width: @screen-sm-max) {
  43. margin-left: @thread-col-icon-mb;
  44. padding-top: 2px;
  45. }
  46. }
  47. // Thready body right space
  48. .thread-main {
  49. margin-right: 10px;
  50. }
  51. .thread-ops-one .thread-main {
  52. margin-right: @thread-col-option;
  53. @media screen and (max-width: @screen-sm-max) {
  54. margin-right: @thread-col-option-mb;
  55. }
  56. }
  57. .thread-ops-two .thread-main {
  58. margin-right: @thread-col-options;
  59. @media screen and (max-width: @screen-sm-max) {
  60. margin-right: @thread-col-options-mb;
  61. }
  62. }
  63. // Thread icon
  64. // --------------------------------------------------
  65. .threads-list .thread-icon {
  66. padding-top: 2px;
  67. text-align: center;
  68. }
  69. // Read icon
  70. .threads-list .read-status {
  71. .material-icon {
  72. width: 24px;
  73. height: 24px;
  74. color: @thread-read-icon-color;
  75. font-size: 24px;
  76. line-height: 24px;
  77. }
  78. }
  79. .threads-list .thread-new .read-status {
  80. .material-icon {
  81. color: @thread-new-icon-color;
  82. }
  83. }
  84. .threads-list .thread-preview .read-status {
  85. .material-icon {
  86. color: @ui-preview;
  87. }
  88. }
  89. // Loader
  90. .threads-list .thread-icon .loader {
  91. height: 24px;
  92. }
  93. .threads-list .thread-icon .loader-spinning-wheel {
  94. width: 24px;
  95. height: 24px;
  96. border-color: lighten(@loader-color, 25%) transparent;
  97. }
  98. // Thread flags
  99. .threads-list .thread-flags {
  100. display: none;
  101. margin-left: auto;
  102. margin-right: auto;
  103. position: relative;
  104. bottom: 4px;
  105. color: @text-muted;
  106. pointer-events: none;
  107. @media screen and (max-width: @screen-sm-max) {
  108. display: block;
  109. margin: 0px;
  110. padding: 0px;
  111. }
  112. li {
  113. margin: 0px 2px;
  114. }
  115. .material-icon {
  116. font-size: 10px;
  117. line-height: 10px;
  118. }
  119. }
  120. // Thread top row
  121. // --------------------------------------------------
  122. // Thread title
  123. .threads-list .thread-title {
  124. &, &:link, &:active, &:visited, &:hover, &:focus {
  125. color: @thread-read-color;
  126. font-size: @font-size-large;
  127. font-weight: normal;
  128. word-wrap: break-word;
  129. .ui-preview-text {
  130. height: @font-size-large;
  131. }
  132. @media screen and (max-width: @screen-sm-max) {
  133. font-size: @font-size-base;
  134. font-weight: bold;
  135. .ui-preview-text {
  136. height: @font-size-base;
  137. }
  138. }
  139. }
  140. }
  141. .threads-list .thread-new .thread-title {
  142. &, &:link, &:active, &:visited, &:hover, &:focus {
  143. color: @thread-new-color;
  144. }
  145. }
  146. // Bottom row
  147. // --------------------------------------------------
  148. // Full details used on desktop
  149. .threads-list .thread-details-full {
  150. display: block;
  151. float: none;
  152. margin: 0px;
  153. margin-top: @line-height-computed * .25;
  154. padding: 0px;
  155. overflow: auto;
  156. font-size: @font-size-small;
  157. @media screen and (max-width: @screen-sm-max) {
  158. display: none;
  159. }
  160. &>li {
  161. display: block;
  162. float: left;
  163. margin: 0px;
  164. margin-right: 6px;
  165. padding: 0px;
  166. overflow: auto;
  167. .material-icon {
  168. position: relative;
  169. top: 1px;
  170. float: left;
  171. margin-right: 2px;
  172. font-size: 14px;
  173. line-height: 14px;
  174. }
  175. .icon-legend {
  176. float: left;
  177. }
  178. .ui-preview-text {
  179. height: @font-size-small;
  180. }
  181. &.thread-path a {
  182. float: left;
  183. }
  184. }
  185. }
  186. // Compact details used on mobile
  187. .threads-list .thread-details-compact {
  188. display: none;
  189. float: none;
  190. margin: 0px;
  191. margin-top: @line-height-computed * .25;
  192. padding: 0px;
  193. overflow: auto;
  194. color: @text-muted;
  195. font-size: @font-size-base * .66;
  196. @media screen and (max-width: @screen-sm-max) {
  197. display: block;
  198. }
  199. &>li {
  200. display: block;
  201. float: left;
  202. margin: 0px;
  203. margin-right: 6px;
  204. padding: 0px;
  205. .material-icon {
  206. position: relative;
  207. top: -1px;
  208. margin-right: 2px;
  209. font-size: (@font-size-base * .66) + 1px;
  210. line-height: (@font-size-base * .66) + 1px;
  211. }
  212. .ui-preview-text {
  213. height: @font-size-base * .66;
  214. }
  215. }
  216. }
  217. // Thread path
  218. .threads-list .thread-path {
  219. .material-icon {
  220. margin: 0px 2px;
  221. }
  222. }
  223. // Thread options
  224. // --------------------------------------------------
  225. .threads-list .thread-options {
  226. @media screen and (max-width: @screen-sm-max) {
  227. overflow: visible;
  228. position: relative;
  229. width: 100px;
  230. }
  231. &>ul {
  232. margin: 0px;
  233. padding: 0px;
  234. @media screen and (max-width: @screen-sm-max) {
  235. position: absolute;
  236. top: -3px;
  237. right: 2px;
  238. }
  239. &>li {
  240. float: right;
  241. @media screen and (max-width: @screen-sm-max) {
  242. overflow: hidden;
  243. }
  244. }
  245. }
  246. .btn-default {
  247. padding: 4px;
  248. color: @gray-light;
  249. @media screen and (max-width: @screen-sm-max) {
  250. background: transparent;
  251. opacity: .33;
  252. }
  253. &:hover, &:active {
  254. color: @gray;
  255. @media screen and (max-width: @screen-sm-max) {
  256. background: @btn-default-bg;
  257. opacity: 1;
  258. }
  259. }
  260. .material-icon {
  261. margin: 0px;
  262. position: relative;
  263. top: 0px;
  264. width: 20px;
  265. height: 20px;
  266. font-size: 20px;
  267. line-height: 20px;
  268. }
  269. .icon-legend {
  270. display: none;
  271. }
  272. }
  273. }
  274. // Threads diff message
  275. // --------------------------------------------------
  276. .threads-diff-message {
  277. padding: 0px;
  278. }
  279. .threads-diff-message .btn {
  280. border: none;
  281. border-bottom-left-radius: 0px;
  282. border-bottom-right-radius: 0px;
  283. padding: @padding-large-vertical @padding-large-horizontal;
  284. width: 100%;
  285. overflow: none;
  286. text-align: left;
  287. .material-icon {
  288. margin-right: 4px;
  289. width: 24px;
  290. height: 24px;
  291. font-size: 24px;
  292. height: 24px;
  293. }
  294. @media screen and (max-width: @screen-sm-max) {
  295. text-align: center;
  296. white-space: normal;
  297. word-wrap: break-word;
  298. .material-icon {
  299. display: none;
  300. }
  301. }
  302. }
  303. // Pulse busy threads
  304. // --------------------------------------------------
  305. .threads-list .thread-busy {
  306. .thread-flags, .thread-main, .thread-options {
  307. .animation(thread-busy-animation 600ms linear infinite);
  308. }
  309. }
  310. @keyframes thread-busy-animation {
  311. 0% {
  312. .opacity(0.2);
  313. }
  314. 50% {
  315. .opacity(0.5);
  316. }
  317. 100% {
  318. .opacity(0.2);
  319. }
  320. }