group-detail.less 24 KB

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