thread.less 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  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-hide {
  228. &:hover, &:active, &:focus {
  229. color: @orange;
  230. }
  231. }
  232. }
  233. &:first-child .btn {
  234. margin-left: 0px;
  235. }
  236. }
  237. a {
  238. margin-left: @baseFontSize;
  239. color: @grayLight;
  240. &:hover, a:active {
  241. color: @textColor;
  242. }
  243. &:first-child {
  244. margin-left: 0px;
  245. }
  246. &.post-reply {
  247. color: @gray;
  248. &:hover, a:active {
  249. color: @blue;
  250. }
  251. }
  252. }
  253. }
  254. }
  255. }
  256. &.post-muted {
  257. .user-avatar {
  258. width: 50px;
  259. height: 50px;
  260. .opacity(75);
  261. }
  262. .post-content {
  263. margin-left: 50px + (@baseFontSize * 1.5);
  264. min-height: 0px;
  265. .opacity(75);
  266. padding: @baseFontSize;
  267. .post-header {
  268. float: right;
  269. margin: 0px;
  270. margin-top: ((@baseFontSize / 2) * -1);
  271. margin-right: @baseFontSize * -1;
  272. .post-header-compact {
  273. float: left;
  274. margin-right: @baseFontSize;
  275. }
  276. }
  277. .post-message {
  278. color: @grayLight;
  279. font-size: @fontSizeLarge;
  280. strong, a {
  281. color: @textColor;
  282. font-weight: normal;
  283. }
  284. }
  285. }
  286. }
  287. }
  288. }
  289. .post-checkpoints {
  290. .post-checkpoint {
  291. text-align: center;
  292. margin-bottom: @baseLineHeight;
  293. &.checkpoint-deleted {
  294. .opacity(30);
  295. &:hover {
  296. .opacity(60);
  297. }
  298. }
  299. hr {
  300. background-color: @grayLight;
  301. background-image: -webkit-gradient(linear, 0 0, 100% 100%,
  302. color-stop(.25, rgba(255, 255, 255, .2)), color-stop(.25, transparent),
  303. color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .2)),
  304. color-stop(.75, rgba(255, 255, 255, .2)), color-stop(.75, transparent),
  305. to(transparent));
  306. background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  307. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  308. transparent 75%, transparent);
  309. background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  310. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  311. transparent 75%, transparent);
  312. background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  313. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  314. transparent 75%, transparent);
  315. background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  316. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  317. transparent 75%, transparent);
  318. background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,
  319. transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,
  320. transparent 75%, transparent);
  321. -webkit-background-size: 10px 10px;
  322. -moz-background-size: 10px 10px;
  323. background-size: 10px 10px;
  324. border: none;
  325. height: 4px;
  326. margin-bottom: (@baseLineHeight * -1) + (@baseFontSize / 2) + 1px;
  327. }
  328. span {
  329. background-color: @bodyBackground;
  330. padding: 0px @baseFontSize;
  331. color: @grayLight;
  332. a {
  333. color: @textColor;
  334. }
  335. i {
  336. .opacity(43);
  337. }
  338. form {
  339. display: inline-block;
  340. margin: 0px;
  341. margin-top: -3px;
  342. margin-left: @baseFontSize / 2;
  343. padding: 0px;
  344. .btn {
  345. margin-top: -2px;
  346. padding: 0px;
  347. font-weight: normal;
  348. &:active, &:hover {
  349. text-decoration: underline;
  350. &.btn-show, &.btn-hide {
  351. color: @orange;
  352. }
  353. &.btn-delete {
  354. color: @red;
  355. }
  356. }
  357. }
  358. }
  359. form:first-of-type {
  360. margin-left: @baseFontSize;
  361. }
  362. }
  363. }
  364. }
  365. }
  366. // Thread moderation
  367. .thread-moderation {
  368. background-color: @categoryBackground;
  369. border: 1px solid @categoryBorder;
  370. border-radius: @baseBorderRadius;
  371. .box-shadow(0px 0px 0px 3px @categoryShadow);
  372. margin-bottom: @baseLineHeight;
  373. overflow: auto;
  374. padding: (@baseFontSize / 2);
  375. form {
  376. margin: 0px;
  377. }
  378. }
  379. // Quick reply styles
  380. .thread-quick-reply {
  381. overflow: auto;
  382. margin-top: @baseLineHeight;
  383. .user-avatar {
  384. border-radius: @baseBorderRadius;
  385. float: left;
  386. width: 100px;
  387. height: 100px;
  388. overflow: visible;
  389. }
  390. .editor {
  391. margin-left: 100px + (@baseFontSize * 1.5);
  392. position: relative;
  393. &:after, &:before {
  394. right: 100%;
  395. border: solid transparent;
  396. content: "";
  397. height: 0; width: 0;
  398. position: absolute;
  399. pointer-events: none;
  400. }
  401. &:after {
  402. border-color: transparent;
  403. border-right-color: @editorBackground;
  404. border-width: @fontSizeMini;
  405. top: @baseFontSize;
  406. margin-top: (@baseFontSize * -1) + @baseFontSize;
  407. }
  408. &:before {
  409. border-color: transparent;
  410. border-right-color: darken(@editorBackground, 10%);
  411. border-width: @fontSizeMini + 1;
  412. top: @baseFontSize;
  413. margin-top: (@baseFontSize * -1) + @baseFontSize - 1px;
  414. }
  415. }
  416. }
  417. // Thread participants list
  418. .thread-participants {
  419. h3 {
  420. margin: 0px;
  421. margin-top: (@baseLineHeight - @baseFontSize) * -1;
  422. padding: 0px;
  423. color: @gray;
  424. font-size: @fontSizeLarge;
  425. font-weight: bold;
  426. }
  427. ul {
  428. background-color: @white;
  429. border: 1px solid darken(@bodyBackground, 10%);
  430. border-radius: @baseBorderRadius;
  431. margin: 0px;
  432. margin-bottom: @baseLineHeight;
  433. padding: 0px;
  434. li {
  435. border-bottom: 1px dotted darken(@bodyBackground, 10%);
  436. margin: 0px;
  437. padding: 6px 8px;
  438. font-weight: bold;
  439. img {
  440. border-radius: @borderRadiusSmall;
  441. width: 24px;
  442. height: 24px;
  443. }
  444. a:link, a:active, a:visited, a:hover {
  445. margin: 0px 4px;
  446. color: @textColor;
  447. font-weight: bold;
  448. }
  449. &:last-child {
  450. border-bottom: none;
  451. }
  452. form {
  453. float: right;
  454. margin: 0px;
  455. padding: 0px;
  456. button {
  457. padding-left: 5px;
  458. padding-right: 5px;
  459. i {
  460. position: relative;
  461. top: 1px;
  462. }
  463. }
  464. }
  465. }
  466. }
  467. h4 {
  468. margin: 0px;
  469. padding: 0px;
  470. color: @gray;
  471. font-size: @baseFontSize * 1.2;
  472. font-weight: bold;
  473. }
  474. .no-participants {
  475. margin-bottom: @baseLineHeight;
  476. }
  477. .invite-participant {
  478. background-color: @white;
  479. border: 1px solid darken(@bodyBackground, 15%);
  480. border-radius: @baseBorderRadius;
  481. margin-top: @baseLineHeight - @baseFontSize;
  482. padding: 1px;
  483. form {
  484. margin: 0px;
  485. padding: 0px;
  486. input, button {
  487. border: none;
  488. background: none;
  489. box-shadow: none;
  490. }
  491. input {
  492. width: 70%;
  493. }
  494. button {
  495. float: right;
  496. }
  497. }
  498. }
  499. }