node-teaser.pcss.css 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. * @file
  3. * Node Teaser specific styles.
  4. */
  5. @import "../base/variables.pcss.css";
  6. .node--view-mode-teaser {
  7. position: relative; /* Anchor after pseudo-element. */
  8. margin-block-end: var(--sp1-5);
  9. &:after {
  10. position: absolute;
  11. inset-block-end: 0;
  12. width: var(--sp3);
  13. height: 0;
  14. content: "";
  15. /* Intentionally not using CSS logical properties. */
  16. border-top: solid 2px var(--color--gray-80);
  17. }
  18. & .node__meta {
  19. margin-block-end: var(--sp);
  20. & a {
  21. color: var(--color--blue-20);
  22. font-weight: bold;
  23. }
  24. }
  25. & .node__top-wrapper {
  26. display: flex;
  27. flex-wrap: wrap;
  28. align-items: center;
  29. margin: 0;
  30. @media (--lg) {
  31. position: relative; /* Anchor the image */
  32. }
  33. }
  34. & .primary-image {
  35. flex-shrink: 0;
  36. margin: 0;
  37. margin-block-end: var(--sp1);
  38. margin-inline-end: var(--sp1);
  39. /* Ensure title does not wrap under image until necessary. */
  40. & + .node__title {
  41. flex-basis: calc(100% - calc(4.5 * var(--sp)));
  42. @media (--lg) {
  43. flex-basis: auto;
  44. }
  45. }
  46. & a {
  47. display: block;
  48. }
  49. & img {
  50. width: calc(3.5 * var(--sp));
  51. height: calc(3.5 * var(--sp));
  52. object-fit: cover;
  53. border-radius: 50%;
  54. @media (--lg) {
  55. width: var(--grid-col-width--lg);
  56. height: var(--grid-col-width--lg);
  57. }
  58. @media (--nav) {
  59. width: var(--grid-col-width--nav);
  60. height: var(--grid-col-width--nav);
  61. }
  62. @media (--grid-max) {
  63. width: var(--grid-col-width--max);
  64. height: var(--grid-col-width--max);
  65. }
  66. }
  67. @media (--lg) {
  68. position: absolute;
  69. inset-block-start: 0;
  70. inset-inline-start: calc(-1 * ((var(--grid-col-width--lg) + var(--grid-gap--lg))));
  71. margin: 0;
  72. }
  73. @media (--nav) {
  74. inset-inline-start: calc(-1 * ((var(--grid-col-width--nav) + var(--grid-gap--nav))));
  75. }
  76. @media (--grid-max) {
  77. inset-inline-start: calc(-1 * ((var(--grid-col-width--max) + var(--grid-gap--max))));
  78. }
  79. }
  80. & .node__title {
  81. margin: 0;
  82. margin-block-end: var(--sp1);
  83. color: var(--color--gray-0);
  84. font-size: 24px;
  85. line-height: var(--line-height-base);
  86. @media (--lg) {
  87. font-size: var(--sp2);
  88. line-height: var(--sp3);
  89. }
  90. }
  91. & .field--tag-ref {
  92. margin-block-start: var(--sp1);
  93. margin-block-end: 0;
  94. margin-inline-start: 0;
  95. margin-inline-end: 0;
  96. padding-block: 0;
  97. padding-inline-start: 0;
  98. padding-inline-end: 0;
  99. background-color: transparent;
  100. @media (--lg) {
  101. margin-block-start: var(--sp2);
  102. }
  103. }
  104. @media (--lg) {
  105. margin-block-end: var(--sp3);
  106. }
  107. }
  108. .views-row:last-child .node--view-mode-teaser {
  109. margin-block-end: 0;
  110. }