threads-lists.less 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  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. .material-icon {
  167. position: relative;
  168. top: -1px;
  169. margin-right: 2px;
  170. font-size: 14px;
  171. line-height: 14px;
  172. }
  173. .ui-preview-text {
  174. height: @font-size-small;
  175. }
  176. }
  177. }
  178. // Compact details used on mobile
  179. .threads-list .thread-details-compact {
  180. display: none;
  181. float: none;
  182. margin: 0px;
  183. margin-top: @line-height-computed * .25;
  184. padding: 0px;
  185. overflow: auto;
  186. color: @text-muted;
  187. font-size: @font-size-base * .66;
  188. @media screen and (max-width: @screen-sm-max) {
  189. display: block;
  190. }
  191. &>li {
  192. display: block;
  193. float: left;
  194. margin: 0px;
  195. margin-right: 6px;
  196. padding: 0px;
  197. .material-icon {
  198. position: relative;
  199. top: -1px;
  200. margin-right: 2px;
  201. font-size: (@font-size-base * .66) + 1px;
  202. line-height: (@font-size-base * .66) + 1px;
  203. }
  204. .ui-preview-text {
  205. height: @font-size-base * .66;
  206. }
  207. }
  208. }
  209. // Thread path
  210. .threads-list .thread-path {
  211. .material-icon {
  212. margin: 0px 2px;
  213. }
  214. }
  215. // Thread options
  216. // --------------------------------------------------
  217. .threads-list .thread-options {
  218. @media screen and (max-width: @screen-sm-max) {
  219. overflow: visible;
  220. position: relative;
  221. width: 100px;
  222. }
  223. ul {
  224. margin: 0px;
  225. padding: 0px;
  226. @media screen and (max-width: @screen-sm-max) {
  227. position: absolute;
  228. top: -3px;
  229. right: 2px;
  230. }
  231. }
  232. li {
  233. float: right;
  234. overflow: hidden;
  235. }
  236. .btn-default {
  237. padding: 4px;
  238. color: @gray-light;
  239. @media screen and (max-width: @screen-sm-max) {
  240. background: transparent;
  241. opacity: .33;
  242. }
  243. &:hover, &:active {
  244. color: @gray;
  245. @media screen and (max-width: @screen-sm-max) {
  246. background: @btn-default-bg;
  247. opacity: 1;
  248. }
  249. }
  250. .material-icon {
  251. margin: 0px;
  252. position: relative;
  253. top: 0px;
  254. width: 20px;
  255. height: 20px;
  256. font-size: 20px;
  257. line-height: 20px;
  258. }
  259. .icon-legend {
  260. display: none;
  261. }
  262. }
  263. }
  264. // Threads diff message
  265. // --------------------------------------------------
  266. .threads-diff-message {
  267. padding: 0px;
  268. }
  269. .threads-diff-message .btn {
  270. border: none;
  271. border-bottom-left-radius: 0px;
  272. border-bottom-right-radius: 0px;
  273. padding: @padding-large-vertical @padding-large-horizontal;
  274. width: 100%;
  275. overflow: none;
  276. text-align: left;
  277. .material-icon {
  278. margin-right: 4px;
  279. width: 24px;
  280. height: 24px;
  281. font-size: 24px;
  282. height: 24px;
  283. }
  284. @media screen and (max-width: @screen-sm-max) {
  285. text-align: center;
  286. white-space: normal;
  287. word-wrap: break-word;
  288. .material-icon {
  289. display: none;
  290. }
  291. }
  292. }
  293. // Pulse busy threads
  294. // --------------------------------------------------
  295. .threads-list .thread-busy {
  296. .thread-flags, .thread-main, .thread-options {
  297. .animation(thread-busy-animation 600ms linear infinite);
  298. }
  299. }
  300. @keyframes thread-busy-animation {
  301. 0% {
  302. .opacity(0.2);
  303. }
  304. 50% {
  305. .opacity(0.5);
  306. }
  307. 100% {
  308. .opacity(0.2);
  309. }
  310. }