group-detail.less 24 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418
  1. /**
  2. * Group Detail
  3. * ============================================================================
  4. */
  5. .group-detail {
  6. position: relative;
  7. margin: 0 0 20px;
  8. clear: both;
  9. h3 {
  10. font-size: 22px;
  11. margin: 0 0 8px;
  12. text-overflow: ellipsis;
  13. white-space: nowrap;
  14. overflow: hidden;
  15. line-height: 1.1;
  16. em {
  17. font-style: normal;
  18. font-weight: 400;
  19. color: @70;
  20. font-size: 90%;
  21. }
  22. }
  23. .count {
  24. &.short-id-box {
  25. min-width: 0;
  26. span:not(.help-link) {
  27. font-size: 18px;
  28. line-height: 1.45;
  29. display: block;
  30. overflow: hidden;
  31. text-overflow: ellipsis;
  32. white-space: nowrap;
  33. direction: rtl;
  34. }
  35. }
  36. span:not(.help-link) {
  37. font-size: 22px;
  38. display: inline-block;
  39. line-height: 1.2;
  40. }
  41. }
  42. .assigned-to {
  43. text-align: right;
  44. position: relative;
  45. }
  46. .meta {
  47. margin: 0 0 15px;
  48. color: #949ea4;
  49. }
  50. .id-label {
  51. background: #fff;
  52. max-width: 200px;
  53. white-space: nowrap;
  54. overflow: hidden;
  55. text-overflow: ellipsis;
  56. }
  57. .severity {
  58. display: inline-block;
  59. position: relative;
  60. top: -7px;
  61. padding: 0 10px;
  62. }
  63. .nav-tabs {
  64. margin-top: 20px;
  65. margin-bottom: 0;
  66. }
  67. &:before {
  68. position: absolute;
  69. display: block;
  70. content: '';
  71. bottom: -1px;
  72. left: -40px;
  73. right: -40px;
  74. height: 1px;
  75. background: @trim;
  76. }
  77. }
  78. /**
  79. * Commit Activity
  80. * TODO(billy): Move this to relevant components
  81. * (This used to be nested under `.activity-item` which is now a styled component)
  82. * ============================================================================
  83. */
  84. .inline-commit {
  85. color: @60;
  86. padding-left: 3px;
  87. &:hover {
  88. color: @80;
  89. }
  90. }
  91. /**
  92. * Event Details
  93. * ============================================================================
  94. */
  95. .event-details-container {
  96. display: flex;
  97. margin: -20px -40px;
  98. background: #fff;
  99. flex-direction: column;
  100. flex: 1;
  101. @media (min-width: 1200px) {
  102. flex-direction: row;
  103. }
  104. .primary {
  105. flex: 1;
  106. .user-report {
  107. border-radius: 0;
  108. box-shadow: none;
  109. padding: 20px 30px 0 40px;
  110. border: 0;
  111. border-top: 1px solid lighten(@trim, 4);
  112. margin: 0;
  113. padding-bottom: 0;
  114. }
  115. @media (min-width: 1200px) {
  116. // TODO(dcramer): whatever flex is doing here is causing this to extend to
  117. // whatever it pleases (e.g. 4k pixels on my 1280 screen)
  118. max-width: ~'calc(100% - 365px)';
  119. }
  120. }
  121. .secondary {
  122. width: 100%;
  123. padding: 30px 40px 30px 30px;
  124. border-left: 1px solid @trim;
  125. @media (min-width: 1200px) {
  126. width: 365px;
  127. }
  128. }
  129. }
  130. /*
  131. * Context callout
  132. * ============================================================================
  133. */
  134. .context-summary {
  135. .context-item {
  136. .context-item-icon {
  137. position: absolute;
  138. left: 0;
  139. width: 36px;
  140. height: 36px;
  141. background-repeat: no-repeat;
  142. background-position: center 2px;
  143. background-image: url(~sentry-logos/logo-unknown.svg);
  144. background-size: 30px 32px; // magic number here because some logos are slightly cut off when at 32 x 32
  145. }
  146. &:first-child {
  147. border: 0;
  148. }
  149. h3 {
  150. .truncate;
  151. font-size: 16px;
  152. line-height: 1.2;
  153. margin-bottom: 0;
  154. }
  155. p {
  156. font-size: 13px;
  157. line-height: 1.4;
  158. &:last-child {
  159. margin: 0;
  160. }
  161. }
  162. &.arm .context-item-icon {
  163. background-image: url(~sentry-logos/logo-arm.svg);
  164. background-size: contain;
  165. }
  166. &.amd .context-item-icon,
  167. &[class*='amd-'] .context-item-icon {
  168. background-image: url(~sentry-logos/logo-amd.svg);
  169. background-size: contain;
  170. }
  171. &.nvidia .context-item-icon,
  172. &[class*='nvidia-'] .context-item-icon {
  173. background-image: url(~sentry-logos/logo-nvidia.svg);
  174. background-size: contain;
  175. }
  176. &.electron .context-item-icon {
  177. background-image: url(~sentry-logos/logo-electron.svg);
  178. }
  179. &.crystal .context-item-icon {
  180. background-image: url(~sentry-logos/logo-crystal.svg);
  181. }
  182. &.net-framework .context-item-icon {
  183. background-image: url(~sentry-logos/logo-netframework.svg);
  184. }
  185. &.net-core .context-item-icon {
  186. background-image: url(~sentry-logos/logo-netcore.svg);
  187. }
  188. &.net .context-item-icon {
  189. background-image: url(~sentry-logos/logo-dotnet.svg);
  190. }
  191. &.mono .context-item-icon {
  192. background-image: url(~sentry-logos/logo-monogorilla.svg);
  193. }
  194. &.php .context-item-icon {
  195. background-image: url(~sentry-logos/logo-php.svg);
  196. }
  197. &.ipad .context-item-icon {
  198. background-image: url(~sentry-logos/logo-apple-tablet.svg);
  199. }
  200. &.ipod,
  201. &.iphone {
  202. .context-item-icon {
  203. background-image: url(~sentry-logos/logo-apple-phone.svg);
  204. }
  205. }
  206. &.appletv .context-item-icon {
  207. background-image: url(~sentry-logos/logo-apple-tv.svg);
  208. }
  209. &.watch .context-item-icon {
  210. background-image: url(~sentry-logos/logo-apple-watch.svg);
  211. }
  212. &.android-phone {
  213. .context-item-icon {
  214. background-image: url(~sentry-logos/logo-android-phone.svg);
  215. }
  216. }
  217. &.android-tablet {
  218. .context-item-icon {
  219. background-image: url(~sentry-logos/logo-android-tablet.svg);
  220. }
  221. }
  222. &.darwin,
  223. &.ios,
  224. &.macos,
  225. &.tvos,
  226. &.mac-os-x,
  227. &.mac,
  228. &.apple,
  229. &.watchos {
  230. .context-item-icon {
  231. background-image: url(~sentry-logos/logo-apple.svg);
  232. background-position: center 0;
  233. }
  234. }
  235. &.android .context-item-icon {
  236. background-image: url(~sentry-logos/logo-android.svg);
  237. }
  238. &.windows .context-item-icon {
  239. background-image: url(~sentry-logos/logo-windows.svg);
  240. }
  241. &.linux .context-item-icon {
  242. background-image: url(~sentry-logos/logo-linux.svg);
  243. }
  244. &.ubuntu .context-item-icon {
  245. background-image: url(~sentry-logos/logo-ubuntu.svg);
  246. }
  247. &.amazon .context-item-icon {
  248. background-image: url(~sentry-logos/logo-amazon.svg);
  249. }
  250. &.firefox .context-item-icon {
  251. background-image: url(~sentry-logos/logo-firefox.svg);
  252. }
  253. &.chrome,
  254. &.chrome-mobile,
  255. &.chrome-mobile-ios {
  256. .context-item-icon {
  257. background-image: url(~sentry-logos/logo-chrome.svg);
  258. }
  259. }
  260. &.chromium .context-item-icon {
  261. background-image: url(~sentry-logos/logo-chromium.svg);
  262. }
  263. &.edge .context-item-icon {
  264. background-image: url(~sentry-logos/logo-edge-new.svg);
  265. }
  266. &.legacy-edge .context-item-icon {
  267. background-image: url(~sentry-logos/logo-edge-old.svg);
  268. }
  269. &.internet-explorer .context-item-icon {
  270. background-image: url(~sentry-logos/logo-ie.svg);
  271. }
  272. &.opera .context-item-icon {
  273. background-image: url(~sentry-logos/logo-opera.svg);
  274. }
  275. &.playstation .context-item-icon {
  276. background-image: url(~sentry-logos/logo-playstation.svg);
  277. }
  278. &.qq-browser .context-item-icon {
  279. background-image: url(~sentry-logos/logo-qq.svg);
  280. }
  281. &.safari,
  282. &.mobile-safari {
  283. .context-item-icon {
  284. background-image: url(~sentry-logos/logo-safari.svg);
  285. }
  286. }
  287. &.samsung .context-item-icon {
  288. background-image: url(~sentry-logos/logo-samsung.svg);
  289. }
  290. &.motorola .context-item-icon {
  291. background-image: url(~sentry-logos/logo-motorola.svg);
  292. }
  293. &.google .context-item-icon {
  294. background-image: url(~sentry-logos/logo-google.svg);
  295. }
  296. &.ruby .context-item-icon {
  297. background-image: url(~sentry-logos/logo-ruby.svg);
  298. }
  299. }
  300. }
  301. .module-user .avatar {
  302. width: 64px;
  303. height: 64px;
  304. img {
  305. height: 100%;
  306. width: 100%;
  307. }
  308. }
  309. .event-stats {
  310. padding-top: 84px;
  311. margin-top: -84px;
  312. }
  313. .event-stats {
  314. h6 {
  315. font-size: 14px;
  316. margin-bottom: 15px;
  317. position: relative;
  318. > span {
  319. background: @white-dark;
  320. padding-right: 7px;
  321. }
  322. &:before {
  323. display: block;
  324. position: absolute;
  325. content: '';
  326. border-top: 1px solid lighten(@trim, 9);
  327. left: 0;
  328. right: 0;
  329. top: 50%;
  330. z-index: -1;
  331. }
  332. }
  333. }
  334. .user-widget {
  335. position: relative;
  336. margin-bottom: 20px;
  337. .avatar {
  338. width: 48px;
  339. height: 48px;
  340. position: absolute;
  341. top: 0;
  342. right: 0;
  343. box-shadow: 0 0 0 5px #fff;
  344. background: #fff;
  345. border-radius: 50% 0 50% 50%;
  346. }
  347. .table {
  348. margin-bottom: 0;
  349. }
  350. }
  351. /**
  352. * Traceback
  353. * ============================================================================
  354. */
  355. .traceback {
  356. list-style-type: none;
  357. padding-left: 0;
  358. border: 1px solid @trim-dark;
  359. border-radius: 0 3px 3px 3px;
  360. box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  361. margin-bottom: 20px;
  362. }
  363. // TODO(dcramer): we probably shouldn't overload these
  364. pre.traceback {
  365. margin: 0 0 20px;
  366. }
  367. div.traceback > ul {
  368. padding: 0;
  369. margin-bottom: 0;
  370. li {
  371. &:first-child {
  372. border-top: none;
  373. .title {
  374. border-top: none;
  375. border-top-right-radius: 3px;
  376. border-top-left-radius: 3px;
  377. }
  378. }
  379. &:last-child .title {
  380. border-bottom-right-radius: 3px;
  381. border-bottom-left-radius: 3px;
  382. }
  383. }
  384. }
  385. .raw-toggle {
  386. input {
  387. margin-right: 6px;
  388. position: relative;
  389. top: -1px;
  390. }
  391. }
  392. /**
  393. * Frame
  394. * ============================================================================
  395. */
  396. .exc-message {
  397. margin: 15px 0 0;
  398. word-wrap: break-word;
  399. white-space: pre-wrap;
  400. color: @gray-darker;
  401. padding: 0;
  402. background: none;
  403. }
  404. .frames-omitted,
  405. .exc-omitted {
  406. color: @gray-dark;
  407. font-size: 14px;
  408. font-weight: 600;
  409. border-left: 3px solid @red;
  410. border-right: 1px solid lighten(@red, 30%);
  411. background: lighten(@red, 35%);
  412. padding: 10px 20px;
  413. margin-bottom: 10px !important;
  414. margin-left: -21px;
  415. margin-right: -21px;
  416. }
  417. .exception {
  418. border-bottom: 1px solid @trim;
  419. margin: 0 0 20px;
  420. &:last-child {
  421. border-bottom: 0;
  422. margin-bottom: 0;
  423. }
  424. h5 {
  425. line-height: 1.2;
  426. }
  427. .traceback {
  428. margin-top: 15px;
  429. }
  430. }
  431. .traceback {
  432. &.no-exception .frame:first-child {
  433. border-top: 0;
  434. }
  435. .frame {
  436. list-style-type: none;
  437. position: relative;
  438. margin: 0;
  439. border-top: 1px solid @trim;
  440. h3 {
  441. font-size: 22px;
  442. }
  443. &.is-expandable .title {
  444. cursor: pointer;
  445. &:hover {
  446. background: lighten(@blue-light, 36);
  447. }
  448. }
  449. &.system-frame.is-expandable .title:hover {
  450. background: darken(@white-dark, 5);
  451. }
  452. .title {
  453. padding: 8px 20px;
  454. font-size: 13px;
  455. margin: 0;
  456. line-height: 16px;
  457. background: lighten(@blue-light, 35);
  458. word-break: break-all;
  459. /* for firefox */
  460. word-break: break-word;
  461. /* for chrome */
  462. code {
  463. font-family: inherit;
  464. }
  465. .informal {
  466. font-style: italic;
  467. }
  468. }
  469. &.system-frame .title {
  470. background: @white-dark;
  471. }
  472. .title.as-table {
  473. width: 100%;
  474. padding-left: 15px;
  475. .package {
  476. font-size: 13px;
  477. font-weight: bold;
  478. .truncate;
  479. flex-basis: 120px;
  480. flex-grow: 0;
  481. flex-shrink: 0;
  482. }
  483. .address {
  484. font-family: @font-family-code;
  485. font-size: 11px;
  486. color: @gray-dark;
  487. letter-spacing: -0.25px;
  488. width: 100px;
  489. flex-grow: 0;
  490. flex-shrink: 0;
  491. }
  492. .symbol {
  493. word-break: break-word;
  494. flex: 1;
  495. code {
  496. background: transparent;
  497. color: @blue-dark;
  498. padding-right: 5px;
  499. a {
  500. color: inherit;
  501. &:hover {
  502. text-decoration: underline;
  503. }
  504. }
  505. }
  506. span.offset {
  507. font-weight: bold;
  508. padding-right: 10px;
  509. }
  510. span.filename {
  511. color: @purple;
  512. margin-right: 3px;
  513. &:before {
  514. content: '(';
  515. }
  516. &:after {
  517. content: ')';
  518. }
  519. }
  520. }
  521. }
  522. .original-src {
  523. font-size: 12px;
  524. padding-left: 3px;
  525. position: relative;
  526. top: 1px;
  527. }
  528. .icon-open {
  529. font-size: 12px;
  530. margin-right: 3px;
  531. margin-left: 3px;
  532. position: relative;
  533. top: 1px;
  534. }
  535. .in-at {
  536. opacity: 0.6;
  537. margin: 0 2px;
  538. }
  539. .blame {
  540. color: lighten(@gray, 5);
  541. a {
  542. color: @gray;
  543. }
  544. .icon-mark-github {
  545. position: relative;
  546. top: 1px;
  547. }
  548. }
  549. .tooltip-inner {
  550. word-wrap: break-word;
  551. text-align: left;
  552. max-width: 300px;
  553. }
  554. .divider {
  555. border-left: 1px solid @trim;
  556. display: inline-block;
  557. width: 1px;
  558. height: 10px;
  559. margin: 0 6px;
  560. position: relative;
  561. top: 1px;
  562. }
  563. code {
  564. padding: 0;
  565. background: inherit;
  566. font-size: inherit;
  567. color: inherit;
  568. }
  569. .empty-context {
  570. padding: 20px;
  571. color: @gray;
  572. p {
  573. display: inline-block;
  574. margin-bottom: 0;
  575. }
  576. .icon {
  577. opacity: 0.45;
  578. margin-right: 10px;
  579. font-size: 0.85em;
  580. }
  581. }
  582. .context {
  583. display: none;
  584. background: #fff;
  585. margin: 0;
  586. padding: 8px 0;
  587. > li {
  588. background: inherit;
  589. }
  590. table.key-value {
  591. border-top: 1px solid @trim;
  592. padding: 0;
  593. margin: 0 0 -8px;
  594. td {
  595. border-bottom: 1px solid @trim !important;
  596. &.key {
  597. width: 125px;
  598. max-width: 125px;
  599. }
  600. &.value pre {
  601. background: inherit;
  602. }
  603. }
  604. tr:last-child {
  605. td {
  606. border-bottom: 0 !important;
  607. }
  608. }
  609. }
  610. &.expanded {
  611. display: block;
  612. }
  613. }
  614. .tag-app {
  615. color: #aaa;
  616. font-size: 0.9em;
  617. margin-left: 10px;
  618. }
  619. > div > table.key-value {
  620. margin-bottom: 5px;
  621. > tbody > tr > th {
  622. color: @gray-dark;
  623. text-align: right;
  624. padding-right: 12px !important;
  625. }
  626. }
  627. .btn-toggle {
  628. display: block;
  629. float: right;
  630. width: 16px;
  631. height: 16px;
  632. padding: 0;
  633. line-height: 16px;
  634. font-size: 9px;
  635. text-align: center;
  636. flex-shrink: 0;
  637. }
  638. .expand-button:hover {
  639. cursor: pointer;
  640. }
  641. &.expanded {
  642. .expandable {
  643. height: auto;
  644. }
  645. }
  646. &:last-child {
  647. .context {
  648. margin-bottom: 0;
  649. }
  650. .toggle-expand .btn {
  651. margin-bottom: -13px;
  652. }
  653. }
  654. }
  655. &.in-app-traceback .frame.leads-to-app {
  656. .leads-to-app-hint {
  657. display: none;
  658. }
  659. &.collapsed {
  660. .title {
  661. opacity: 0.7;
  662. font-size: 12px;
  663. padding: 4px 20px 4px 20px;
  664. background: lighten(@blue-light, 33);
  665. &.is-expandable:hover {
  666. opacity: 1;
  667. }
  668. .package {
  669. width: auto;
  670. }
  671. }
  672. .title.as-table {
  673. padding-left: 15px;
  674. }
  675. .in-at-line,
  676. .lineno,
  677. .btn-toggle,
  678. .address {
  679. display: none;
  680. }
  681. .leads-to-app-hint {
  682. display: inline;
  683. }
  684. }
  685. }
  686. &.full-traceback {
  687. .leads-to-app-hint {
  688. display: none !important;
  689. }
  690. }
  691. .expandable {
  692. height: 0;
  693. position: relative;
  694. .icon-plus {
  695. position: absolute;
  696. left: 8px;
  697. top: 6px;
  698. opacity: 0.25;
  699. transition: 0.1s opacity linear;
  700. }
  701. &.key-value {
  702. display: none;
  703. }
  704. .ws {
  705. display: none;
  706. overflow: hidden;
  707. }
  708. &:hover {
  709. .icon-plus {
  710. opacity: 0.5;
  711. }
  712. }
  713. }
  714. .expanded {
  715. .expandable {
  716. height: auto;
  717. }
  718. .ws {
  719. display: inline;
  720. overflow: none;
  721. }
  722. }
  723. ol.context {
  724. margin: 0;
  725. list-style-position: inside;
  726. list-style-type: decimal-leading-zero;
  727. border-radius: 3px;
  728. padding-left: 0;
  729. .key-value {
  730. display: none;
  731. pre {
  732. overflow: auto;
  733. }
  734. }
  735. > li {
  736. font-family: @font-family-code;
  737. color: #222;
  738. background-color: #f6f7f8;
  739. line-height: 24px;
  740. font-size: 12px;
  741. white-space: pre;
  742. white-space: pre-wrap;
  743. word-wrap: break-word;
  744. min-height: 24px;
  745. }
  746. > li.active {
  747. background-color: #f6f7f8;
  748. list-style-type: none;
  749. border-radius: 2px;
  750. &:first-child:last-child {
  751. background-color: inherit;
  752. color: inherit;
  753. border-radius: 0;
  754. }
  755. pre {
  756. color: @gray-dark;
  757. }
  758. }
  759. > li:first-child {
  760. border-radius: 2px 2px 0 0;
  761. }
  762. > li:last-of-type {
  763. border-radius: 0 0 2px 2px;
  764. }
  765. li.closed {
  766. border-radius: 2px;
  767. }
  768. &.expanded {
  769. .key-value {
  770. display: table;
  771. }
  772. > li.active {
  773. background-color: @purple;
  774. color: #fff;
  775. list-style-type: inherit;
  776. border-radius: 0;
  777. }
  778. }
  779. }
  780. ol.context-line {
  781. > li {
  782. > span {
  783. float: right;
  784. }
  785. }
  786. }
  787. }
  788. #full-message {
  789. line-height: 1.5em;
  790. &#full-message {
  791. background: none;
  792. padding: 0;
  793. }
  794. }
  795. &.expanded div.commands,
  796. div.commands:hover {
  797. opacity: 1;
  798. a {
  799. color: @state-info-text;
  800. }
  801. }
  802. div.commands {
  803. position: absolute;
  804. right: 10px;
  805. top: 6px;
  806. font-size: 0.9em;
  807. opacity: 0.3;
  808. a {
  809. color: #666;
  810. text-decoration: none;
  811. span {
  812. font-size: 9px;
  813. margin-right: 5px;
  814. }
  815. }
  816. }
  817. // Request
  818. .request {
  819. .path {
  820. font-weight: normal;
  821. float: left;
  822. strong {
  823. margin-right: 4px;
  824. }
  825. }
  826. }
  827. /* message details */
  828. .server-list,
  829. .url-list,
  830. .logger-list,
  831. .level-list {
  832. list-style: none;
  833. margin-left: 0;
  834. margin-bottom: 0;
  835. }
  836. .server-list li,
  837. .url-list li {
  838. padding-bottom: 10px;
  839. }
  840. .url-list li a {
  841. line-height: 18px;
  842. }
  843. pre.val,
  844. span.val {
  845. span {
  846. display: inline;
  847. }
  848. }
  849. .val-string {
  850. border-radius: 3px;
  851. padding: 2px 4px;
  852. }
  853. .val-string-multiline {
  854. display: block;
  855. overflow: auto;
  856. }
  857. .val-stripped {
  858. color: darken(@red, 10);
  859. background: transparent;
  860. }
  861. .val-bool,
  862. .val-null {
  863. color: darken(@blue, 10);
  864. font-weight: bold;
  865. }
  866. .val-dict {
  867. display: inline;
  868. .val-dict-items {
  869. display: block;
  870. padding: 0 0 0 15px;
  871. .val-dict-pair {
  872. display: block;
  873. }
  874. }
  875. .val-dict-key,
  876. .val-dict-key .val-string {
  877. color: darken(@red, 5);
  878. background: transparent;
  879. border-radius: none;
  880. }
  881. }
  882. .val-array {
  883. .val-array-items {
  884. display: block;
  885. padding: 0 0 0 15px;
  886. .val-array-item {
  887. display: block;
  888. }
  889. }
  890. }
  891. /**
  892. * Exceptions and Threads
  893. * ============================================================================
  894. */
  895. .box .thread {
  896. .exception {
  897. margin-top: 10px;
  898. }
  899. .traceback.no-exception {
  900. margin-top: 0;
  901. }
  902. }
  903. /**
  904. * Shared Group Detail
  905. * ============================================================================
  906. */
  907. .shared-group {
  908. padding: 40px 0;
  909. background: none;
  910. .app > .container {
  911. max-width: 960px;
  912. > .box {
  913. > .box-header {
  914. padding: 15px 30px 13px;
  915. display: flex;
  916. align-items: center;
  917. a {
  918. &.logo {
  919. font-size: 20px;
  920. flex: 1;
  921. }
  922. &:hover {
  923. color: @gray-dark;
  924. }
  925. }
  926. .back-to,
  927. .pull-right a {
  928. font-size: 16px;
  929. }
  930. .back-to {
  931. border-left: 1px solid @trim;
  932. padding: 2px 10px;
  933. display: inline-block;
  934. margin-left: 7px;
  935. position: relative;
  936. top: -3px;
  937. }
  938. }
  939. }
  940. }
  941. .container {
  942. padding-left: 0;
  943. padding-right: 0;
  944. }
  945. .group-detail {
  946. padding: 0 30px;
  947. border-bottom: 1px solid darken(@trim, 5);
  948. box-shadow: 0 2px 0 rgba(0, 0, 0, 0.03);
  949. &:before {
  950. display: none;
  951. }
  952. .details {
  953. max-width: 960px;
  954. margin: 0 auto;
  955. padding: 20px 0 0;
  956. }
  957. }
  958. .event-details-container {
  959. display: block;
  960. margin: 0;
  961. .primary {
  962. max-width: 100%;
  963. .box {
  964. padding: 0 30px;
  965. &:first-child {
  966. border-top: 0;
  967. }
  968. }
  969. .box-header,
  970. .box-content {
  971. max-width: 960px;
  972. margin: 0 auto;
  973. }
  974. .box-header {
  975. margin-top: 15px;
  976. }
  977. .exception {
  978. padding: 20px 0;
  979. margin: 0;
  980. &:first-child {
  981. padding-top: 0;
  982. }
  983. }
  984. .traceback.no-exception {
  985. margin-bottom: 25px;
  986. margin-top: -5px;
  987. }
  988. }
  989. }
  990. }
  991. /**
  992. * Breadcrumbs / Timeline
  993. * ============================================================================
  994. */
  995. ul.crumbs {
  996. li {
  997. .table.key-value {
  998. margin-bottom: 0;
  999. background: none;
  1000. thead td:first-child {
  1001. font-weight: bold;
  1002. }
  1003. td {
  1004. padding: 2px 0 !important;
  1005. font-weight: normal;
  1006. }
  1007. .key {
  1008. width: 122px;
  1009. max-width: 122px;
  1010. color: @gray-dark;
  1011. line-height: 1.6 !important;
  1012. }
  1013. pre {
  1014. display: inline-block;
  1015. padding: 0;
  1016. margin-top: 1px;
  1017. background: none;
  1018. word-break: break-all;
  1019. }
  1020. }
  1021. div.summary {
  1022. overflow: hidden;
  1023. &.can-expand {
  1024. cursor: pointer;
  1025. position: relative;
  1026. &:after {
  1027. position: absolute;
  1028. bottom: 0;
  1029. left: 0;
  1030. right: 0;
  1031. content: ' ';
  1032. display: block;
  1033. width: 100%;
  1034. height: 15px;
  1035. background-image: linear-gradient(
  1036. to bottom,
  1037. rgba(255, 255, 255, 0) 0%,
  1038. rgba(255, 255, 255, 1) 100%
  1039. );
  1040. background-repeat: repeat-x;
  1041. z-index: 1;
  1042. }
  1043. &:hover {
  1044. &:before {
  1045. position: absolute;
  1046. bottom: 4px;
  1047. right: 0;
  1048. font-family: 'sentry-simple';
  1049. content: '\e617';
  1050. background: @white-dark;
  1051. border: 1px solid darken(@trim, 5);
  1052. border-radius: 3px;
  1053. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  1054. z-index: 2;
  1055. padding: 0 5px;
  1056. margin-left: -14px;
  1057. }
  1058. }
  1059. }
  1060. &.expanded {
  1061. max-height: none;
  1062. &:after,
  1063. &:before {
  1064. display: none;
  1065. }
  1066. }
  1067. pre {
  1068. display: inline-block;
  1069. }
  1070. }
  1071. }
  1072. }
  1073. /**
  1074. * Responsive medium screen
  1075. * ============================================================================
  1076. */
  1077. @media (max-width: 991px) {
  1078. .group-stats-column {
  1079. float: none;
  1080. }
  1081. }
  1082. /**
  1083. * Responsive small screen
  1084. * ============================================================================
  1085. */
  1086. @media (max-width: 767px) {
  1087. .group-detail {
  1088. h3 {
  1089. white-space: normal;
  1090. font-size: 20px;
  1091. line-height: 1.2;
  1092. }
  1093. .meta {
  1094. font-size: 13px;
  1095. }
  1096. .short-id-box {
  1097. text-align: left;
  1098. }
  1099. .is-assigned {
  1100. padding-top: 0;
  1101. }
  1102. .seen-by {
  1103. display: none;
  1104. }
  1105. }
  1106. // Event detail columns
  1107. .event-details-container {
  1108. flex-direction: column;
  1109. margin: 0;
  1110. .primary {
  1111. max-width: 100%;
  1112. .box {
  1113. padding: 15px 0;
  1114. .box-header {
  1115. h3 {
  1116. margin: 0 0 10px;
  1117. small {
  1118. margin-left: 0 !important;
  1119. display: block;
  1120. }
  1121. }
  1122. .permalink {
  1123. display: none;
  1124. }
  1125. }
  1126. }
  1127. .user-report {
  1128. padding: 15px 0;
  1129. }
  1130. .exception {
  1131. margin: 0;
  1132. padding: 15px 0;
  1133. }
  1134. .traceback {
  1135. &.no-exception {
  1136. margin: 0;
  1137. }
  1138. .btn-toggle {
  1139. width: 17px;
  1140. }
  1141. }
  1142. }
  1143. .secondary {
  1144. width: auto;
  1145. padding: 0;
  1146. border: 0;
  1147. margin-bottom: 20px;
  1148. }
  1149. .detailed-error {
  1150. border-top: 1px solid @trim;
  1151. }
  1152. }
  1153. // Context callout
  1154. .context-summary {
  1155. flex-direction: column;
  1156. margin-top: 0;
  1157. padding: 0;
  1158. margin-bottom: 20px;
  1159. }
  1160. .context {
  1161. overflow: auto;
  1162. li {
  1163. width: 800px;
  1164. }
  1165. }
  1166. }