thread.less 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. // Thread view
  2. // -------------------------
  3. .thread-buttons {
  4. overflow: auto;
  5. .pull-right {
  6. margin-left: @baseFontSize;
  7. }
  8. .thread-signin-message {
  9. float: right;
  10. a:link, a:visited {
  11. color: @textColor;
  12. }
  13. }
  14. }
  15. // Thread body styles
  16. .thread-body {
  17. .post-wrapper {
  18. // Post body
  19. .post-body {
  20. margin-bottom: @baseLineHeight;
  21. overflow: auto;
  22. .user-avatar {
  23. border-radius: @borderRadiusLarge;
  24. float: left;
  25. width: 100px;
  26. height: 100px;
  27. }
  28. .post-content {
  29. background-color: @postBackground;
  30. border: 1px solid @postBorder;
  31. border-radius: @borderRadiusLarge;
  32. margin-left: 100px + (@baseFontSize * 1.5);
  33. min-height: 100px;
  34. position: relative;
  35. &:after, &:before {
  36. right: 100%;
  37. border: solid transparent;
  38. content: "";
  39. height: 0; width: 0;
  40. position: absolute;
  41. pointer-events: none;
  42. }
  43. &:after {
  44. border-color: transparent;
  45. border-right-color: @postBackground;
  46. border-width: @fontSizeMini;
  47. top: @baseFontSize;
  48. margin-top: (@baseFontSize * -1) + @baseFontSize;
  49. }
  50. &:before {
  51. border-color: transparent;
  52. border-right-color: @postBorder;
  53. border-width: @fontSizeMini + 1;
  54. top: @baseFontSize;
  55. margin-top: (@baseFontSize * -1) + @baseFontSize - 1px;
  56. }
  57. .post-header {
  58. padding: (@baseFontSize / 2) @baseFontSize;
  59. padding-bottom: 0px;
  60. color: grayLighter;
  61. .post-author {
  62. color: @textColor;
  63. font-weight: bold;
  64. }
  65. .post-author-label {
  66. text-shadow: none;
  67. &.post-label-guest {
  68. background-color: @grayLighter;
  69. color: @grayLight;
  70. }
  71. }
  72. .separator {
  73. color: @grayLighter;
  74. font-size: @fontSizeLarge;
  75. line-height: 5px;
  76. }
  77. .post-date {
  78. color: @grayLight;
  79. }
  80. .post-changelog {
  81. color: @grayLight;
  82. &:hover, &:active {
  83. color: @textColor;
  84. }
  85. }
  86. .post-perma {
  87. display: block;
  88. float: right;
  89. padding-left: 6px;
  90. color: @grayLight;
  91. font-weight: bold;
  92. &:hover, &:active {
  93. color: @textColor;
  94. }
  95. }
  96. .post-checkbox {
  97. float: right;
  98. position: relative;
  99. left: @baseFontSize - 4px;
  100. }
  101. .post-extra {
  102. float: right;
  103. .label {
  104. margin-left: @baseFontSize / 4;
  105. text-shadow: none;
  106. &.label-purple {
  107. background-color: #7e2ecf;
  108. }
  109. }
  110. }
  111. }
  112. .post-message {
  113. .markdown {
  114. padding: @baseFontSize;
  115. }
  116. .post-signature {
  117. border-top: 1px dotted darken(@postBackground, 25%);
  118. .opacity(60);
  119. margin: 0px @baseFontSize;
  120. font-size: 80%;
  121. .markdown {
  122. padding: 0px;
  123. padding-top: @baseLineHeight / 4;
  124. padding-bottom: @baseFontSize;
  125. }
  126. }
  127. }
  128. .post-footer {
  129. border-top: 1px solid @postBorder;
  130. overflow: auto;
  131. &:empty {
  132. display: none;
  133. }
  134. .post-rating {
  135. float: left;
  136. overflow: auto;
  137. padding: (@baseFontSize / 2) @baseFontSize;
  138. border-right: 1px dotted @postBorder;
  139. a {
  140. color: @grayLight;
  141. &:hover, a:active {
  142. color: @textColor;
  143. }
  144. }
  145. span {
  146. float: left;
  147. &.post-score {
  148. color: @grayLight;
  149. font-weight: bold;
  150. &.post-score-good {
  151. color: @green;
  152. }
  153. &.post-score-bad {
  154. color: @red;
  155. }
  156. }
  157. &.post-neutral, &.post-like, &.post-hate {
  158. margin-left: (@baseFontSize / 4);
  159. }
  160. &.post-neutral {
  161. color: @grayLight;
  162. }
  163. &.post-like {
  164. color: @green;
  165. }
  166. &.post-hate {
  167. color: @red;
  168. }
  169. }
  170. form {
  171. float: left;
  172. margin: 0px;
  173. padding: 0px;
  174. .btn-link {
  175. float: right;
  176. margin: 0px;
  177. margin-left: (@baseFontSize / 4);
  178. .opacity(100);
  179. padding: 0px;
  180. color: @grayLight;
  181. font-weight: normal;
  182. &:hover, &:active, &:focus {
  183. text-decoration: underline;
  184. }
  185. &.post-like {
  186. &:hover, &:active, &:focus, &:disabled {
  187. color: @green;
  188. }
  189. }
  190. &.post-hate {
  191. &:hover, &:active, &:focus, &:disabled {
  192. color: @red;
  193. }
  194. }
  195. &:disabled {
  196. &:hover, &:active, &:focus {
  197. text-decoration: none;
  198. }
  199. }
  200. }
  201. }
  202. }
  203. .post-actions {
  204. border-left: 1px dotted @postBorder;
  205. float: right;
  206. padding: (@baseFontSize / 2) @baseFontSize;
  207. color: @grayLight;
  208. a, span, form {
  209. float: left;
  210. overflow: auto;
  211. }
  212. form {
  213. margin: 0px;
  214. padding: 0px;
  215. .btn {
  216. float: right;
  217. margin: 0px;
  218. margin-left: @baseFontSize;
  219. .opacity(100);
  220. padding: 0px;
  221. color: @grayLight;
  222. font-weight: normal;
  223. &:hover, &:active, &:focus {
  224. color: @red;
  225. text-decoration: underline;
  226. }
  227. &.btn-report {
  228. &:disabled {
  229. color: @green;
  230. }
  231. }
  232. &.btn-hide {
  233. &:hover, &:active, &:focus {
  234. color: @orange;
  235. }
  236. }
  237. }
  238. &:first-child .btn {
  239. margin-left: 0px;
  240. }
  241. }
  242. a {
  243. margin-left: @baseFontSize;
  244. color: @grayLight;
  245. &:hover, a:active {
  246. color: @textColor;
  247. }
  248. &:first-child {
  249. margin-left: 0px;
  250. }
  251. &.post-reply {
  252. color: @gray;
  253. &:hover, a:active {
  254. color: @blue;
  255. }
  256. }
  257. }
  258. }
  259. }
  260. }
  261. &.post-muted {
  262. .user-avatar {
  263. width: 50px;
  264. height: 50px;
  265. .opacity(75);
  266. }
  267. .post-content {
  268. margin-left: 50px + (@baseFontSize * 1.5);
  269. min-height: 0px;
  270. .opacity(75);
  271. padding: @baseFontSize;
  272. .post-header {
  273. float: right;
  274. margin: 0px;
  275. margin-top: ((@baseFontSize / 2) * -1);
  276. margin-right: @baseFontSize * -1;
  277. .post-header-compact {
  278. float: left;
  279. margin-right: @baseFontSize;
  280. }
  281. }
  282. .post-message {
  283. color: @grayLight;
  284. font-size: @fontSizeLarge;
  285. strong, a {
  286. color: @textColor;
  287. font-weight: normal;
  288. }
  289. }
  290. }
  291. }
  292. }
  293. }
  294. .post-checkpoints {
  295. .post-checkpoint {
  296. text-align: center;
  297. margin-bottom: @baseLineHeight;
  298. &.checkpoint-deleted {
  299. .opacity(30);
  300. &:hover {
  301. .opacity(60);
  302. }
  303. }
  304. hr {
  305. background-color: @grayLight;
  306. background-image: -webkit-gradient(linear, 0 0, 100% 100%,
  307. color-stop(.25, rgba(255, 255, 255, .2)), color-stop(.25, transparent),
  308. color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .2)),
  309. color-stop(.75, rgba(255, 255, 255, .2)), color-stop(.75, transparent),
  310. to(transparent));
  311. background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  312. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  313. transparent 75%, transparent);
  314. background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  315. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  316. transparent 75%, transparent);
  317. background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  318. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  319. transparent 75%, transparent);
  320. background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  321. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  322. transparent 75%, transparent);
  323. background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  324. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  325. transparent 75%, transparent);
  326. -webkit-background-size: 10px 10px;
  327. -moz-background-size: 10px 10px;
  328. background-size: 10px 10px;
  329. border: none;
  330. height: 4px;
  331. margin-bottom: (@baseLineHeight * -1) + (@baseFontSize / 2) + 1px;
  332. }
  333. span {
  334. background-color: @bodyBackground;
  335. padding: 0px @baseFontSize;
  336. color: @grayLight;
  337. a {
  338. color: @textColor;
  339. }
  340. i {
  341. .opacity(43);
  342. }
  343. form {
  344. display: inline-block;
  345. margin: 0px;
  346. margin-top: -3px;
  347. margin-left: @baseFontSize / 2;
  348. padding: 0px;
  349. .btn {
  350. margin-top: -2px;
  351. padding: 0px;
  352. font-weight: normal;
  353. &:active, &:hover {
  354. text-decoration: underline;
  355. &.btn-show, &.btn-hide {
  356. color: @orange;
  357. }
  358. &.btn-delete {
  359. color: @red;
  360. }
  361. }
  362. }
  363. }
  364. form:first-of-type {
  365. margin-left: @baseFontSize;
  366. }
  367. }
  368. }
  369. }
  370. }
  371. // Thread moderation
  372. .thread-moderation {
  373. background-color: @categoryBackground;
  374. border: 1px solid @categoryBorder;
  375. border-radius: @baseBorderRadius;
  376. .box-shadow(0px 0px 0px 3px @categoryShadow);
  377. margin-bottom: @baseLineHeight;
  378. overflow: auto;
  379. padding: (@baseFontSize / 2);
  380. form {
  381. margin: 0px;
  382. }
  383. }
  384. // Quick reply styles
  385. .thread-quick-reply {
  386. overflow: auto;
  387. margin-top: @baseLineHeight;
  388. .user-avatar {
  389. border-radius: @baseBorderRadius;
  390. float: left;
  391. width: 100px;
  392. height: 100px;
  393. overflow: visible;
  394. }
  395. .editor {
  396. margin-left: 100px + (@baseFontSize * 1.5);
  397. position: relative;
  398. &:after, &:before {
  399. right: 100%;
  400. border: solid transparent;
  401. content: "";
  402. height: 0; width: 0;
  403. position: absolute;
  404. pointer-events: none;
  405. }
  406. &:after {
  407. border-color: transparent;
  408. border-right-color: @editorBackground;
  409. border-width: @fontSizeMini;
  410. top: @baseFontSize;
  411. margin-top: (@baseFontSize * -1) + @baseFontSize;
  412. }
  413. &:before {
  414. border-color: transparent;
  415. border-right-color: darken(@editorBackground, 10%);
  416. border-width: @fontSizeMini + 1;
  417. top: @baseFontSize;
  418. margin-top: (@baseFontSize * -1) + @baseFontSize - 1px;
  419. }
  420. }
  421. }
  422. // Thread participants list
  423. .thread-participants {
  424. h3 {
  425. margin: 0px;
  426. margin-top: (@baseLineHeight - @baseFontSize) * -1;
  427. padding: 0px;
  428. color: @gray;
  429. font-size: @fontSizeLarge;
  430. font-weight: bold;
  431. }
  432. ul {
  433. background-color: @white;
  434. border: 1px solid darken(@bodyBackground, 10%);
  435. border-radius: @baseBorderRadius;
  436. margin: 0px;
  437. margin-bottom: @baseLineHeight;
  438. padding: 0px;
  439. li {
  440. border-bottom: 1px dotted darken(@bodyBackground, 10%);
  441. margin: 0px;
  442. padding: 6px 8px;
  443. font-weight: bold;
  444. img {
  445. border-radius: @borderRadiusSmall;
  446. width: 24px;
  447. height: 24px;
  448. }
  449. a:link, a:active, a:visited, a:hover {
  450. margin: 0px 4px;
  451. color: @textColor;
  452. font-weight: bold;
  453. }
  454. &:last-child {
  455. border-bottom: none;
  456. }
  457. form {
  458. float: right;
  459. margin: 0px;
  460. padding: 0px;
  461. button {
  462. padding-left: 5px;
  463. padding-right: 5px;
  464. i {
  465. position: relative;
  466. top: 1px;
  467. }
  468. }
  469. }
  470. }
  471. }
  472. h4 {
  473. margin: 0px;
  474. padding: 0px;
  475. color: @gray;
  476. font-size: @baseFontSize * 1.2;
  477. font-weight: bold;
  478. }
  479. .no-participants {
  480. margin-bottom: @baseLineHeight;
  481. }
  482. .invite-participant {
  483. background-color: @white;
  484. border: 1px solid darken(@bodyBackground, 15%);
  485. border-radius: @baseBorderRadius;
  486. margin-top: @baseLineHeight - @baseFontSize;
  487. padding: 1px;
  488. form {
  489. margin: 0px;
  490. padding: 0px;
  491. input, button {
  492. border: none;
  493. background: none;
  494. box-shadow: none;
  495. }
  496. input {
  497. width: 70%;
  498. }
  499. button {
  500. float: right;
  501. }
  502. }
  503. }
  504. }