Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

389 lignes
7.7 KiB

  1. @import '../../_global/styles/mixins';
  2. @import '../../_global/styles/vars';
  3. .teaser {
  4. --hero-background: var(--theme-color-white);
  5. position: relative;
  6. display: flex;
  7. flex-direction: column;
  8. height: 100%;
  9. text-decoration: none;
  10. font-size: var(--font-size-small);
  11. &::before {
  12. content: '';
  13. @include full-size;
  14. margin: -6px;
  15. border-radius: var(--border-radius-xs);
  16. transition: 0.2s ease;
  17. }
  18. &:focus {
  19. outline: none;
  20. }
  21. &.focus-visible:focus::before {
  22. @include focus-standalone;
  23. }
  24. &:focus-visible::before, &.-moz-focusring::before {
  25. @include focus-standalone;
  26. }
  27. &.text {
  28. margin-bottom: 0;
  29. }
  30. .teaser--link {
  31. position: absolute;
  32. left: 0;
  33. top: 0;
  34. width: 100%;
  35. height: 100%;
  36. z-index: 10;
  37. }
  38. .image-box {
  39. position: relative;
  40. display: block;
  41. border-radius: var(--border-radius-xs);
  42. background-color: var(--theme-color-primary-dimmed-04);
  43. overflow: hidden;
  44. flex-grow: 0;
  45. flex-shrink: 0;
  46. &::before {
  47. content: "";
  48. position: relative;
  49. display: block;
  50. padding-top: 66.6667%;
  51. margin-bottom: 7px;
  52. }
  53. &::after {
  54. content: "";
  55. position: absolute;
  56. left: 0;
  57. bottom: 0;
  58. width: 100%;
  59. display: block;
  60. height: 8px;
  61. background-color: var(--theme-color-secondary);
  62. transition: 0.3s ease;
  63. z-index: 1;
  64. border-bottom-right-radius: 4px;
  65. border-bottom-left-radius: 4px;
  66. }
  67. &.chart {
  68. display: flex;
  69. align-items: center;
  70. justify-content: center;
  71. background: linear-gradient(130deg, var(--theme-color-gradient-01) 46%, var(--theme-color-gradient-02) 123%, var(--theme-color-gradient-03) 255%);
  72. }
  73. }
  74. img {
  75. position: absolute;
  76. top: 0;
  77. left: 0;
  78. max-width: 100%;
  79. width: 100%;
  80. height: calc(100% - 7px);
  81. object-fit: cover;
  82. opacity: 1;
  83. transition: 0.3s linear;
  84. &.loading {
  85. opacity: 0;
  86. }
  87. }
  88. .copyright {
  89. @include copyright;
  90. bottom: 8px;
  91. }
  92. .picto-box {
  93. position: absolute;
  94. left: 50%;
  95. top: 50%;
  96. transform: translate(-50%,-50%);
  97. .icon {
  98. width: 90px;
  99. height: 90px;
  100. overflow: hidden;
  101. position: relative;
  102. margin: 0 auto;
  103. @media(min-width: 568px) {
  104. width: 100px;
  105. height: 100px;
  106. }
  107. &:before {
  108. display: block;
  109. position: absolute;
  110. left: 0;
  111. top: 0;
  112. font-family: "Pictograms", sans-serif;
  113. color: var(--theme-color-white);
  114. font-size: 90px;
  115. line-height: 1;
  116. @media(min-width: 568px) {
  117. font-size: 100px;
  118. }
  119. }
  120. }
  121. .picto-title {
  122. @include h3;
  123. margin: 10px 0 0 0;
  124. width: calc(100vw - 80px);
  125. overflow: hidden;
  126. height: 38px;
  127. display: block;
  128. font-weight: 400 !important;
  129. color: var(--theme-color-background) !important;
  130. text-decoration-color: transparent !important;
  131. text-align: center;
  132. @media(max-width: 999px) {
  133. font-size: 28px;
  134. height: 32px;
  135. }
  136. }
  137. }
  138. &.pictoHero {
  139. .picto-box {
  140. margin-top: -20px;
  141. .icon {
  142. @media(min-width: 568px) {
  143. width: 150px;
  144. height: 150px;
  145. }
  146. &:before {
  147. @media(min-width: 568px) {
  148. font-size: 150px;
  149. }
  150. }
  151. }
  152. }
  153. }
  154. .chart-title {
  155. @include h3;
  156. display: block;
  157. font-weight: 500 !important;
  158. padding: 30px;
  159. margin: 0 0 0.4em;
  160. color: var(--theme-color-background) !important;
  161. text-decoration-color: transparent !important;
  162. text-align: center;
  163. @media(max-width: 999px) {
  164. font-size: 28px;
  165. margin-bottom: 0;
  166. padding: 20px;
  167. }
  168. }
  169. .kicker + .text-box {
  170. margin-top: 0.1em;
  171. border-top: 8px solid var(--theme-color-secondary);
  172. }
  173. .text-box {
  174. position: relative;
  175. &:not(:last-child) {
  176. padding-bottom: 20px;
  177. > p:last-child {
  178. margin-bottom: 0;
  179. &::after {
  180. content: '';
  181. position: relative;
  182. float: right;
  183. height: 0.75em;
  184. display: inline-block;
  185. width: 150px;
  186. }
  187. }
  188. }
  189. }
  190. .title {
  191. text-decoration: underline;
  192. text-underline-offset: 0.07em;
  193. text-decoration-thickness: 0.08em;
  194. margin: 0.5em 0;
  195. }
  196. &:hover {
  197. .image-box::after {
  198. height: var(--border-width-hover);
  199. }
  200. .copyright {
  201. bottom: 14px;
  202. @media(max-width: 767px) {
  203. bottom: 10px;
  204. }
  205. }
  206. }
  207. }
  208. [date-type='hero'], .teaser.hero, .teaser.pictoHero {
  209. .image-box ~ .text-box {
  210. padding-top: 0.9em;
  211. .title {
  212. position: absolute;
  213. bottom: 100%;
  214. z-index: 1;
  215. background-color: var(--hero-background);
  216. margin-right: 40px;
  217. padding-top: 0.4em;
  218. padding-right: 0.8em;
  219. margin-bottom: -0.05em;
  220. }
  221. }
  222. }
  223. .col.extern, .col.download, .col.intranet, .col.extranet, .col.gallery, .col.interaction, .col.video,
  224. .teaser.extern, .teaser.gallery, .teaser.interaction, .teaser.video, .teaser.download, .teaser.intranet, .teaser.extranet {
  225. &:before {
  226. display: none;
  227. }
  228. .title:after {
  229. @include icon-small-stern;
  230. font-family: 'Icons', sans-serif;
  231. position: relative;
  232. font-size: var(--icon-size-small);
  233. line-height: 1;
  234. text-decoration: none;
  235. display: inline-block;
  236. vertical-align: top;
  237. margin-left: 0.2em;
  238. @media(min-width: 983px) {
  239. margin-top: 0.1rem;
  240. }
  241. @media(min-width: 1340px) {
  242. margin-top: 0.27rem;
  243. }
  244. }
  245. }
  246. .col.extern .title:after,
  247. .teaser.extern .title:after {
  248. @include icon-small-link-external;
  249. }
  250. .col.download .title:after,
  251. .teaser.download .title:after {
  252. @include icon-small-download;
  253. }
  254. .col.intranet .title:after,
  255. .teaser.intranet .title:after {
  256. @include icon-small-schloss;
  257. }
  258. .col.gallery .title:after,
  259. .teaser.gallery .title:after {
  260. @include icon-galerie-small;
  261. }
  262. .col.interaction .title:after,
  263. .teaser.interaction .title:after {
  264. @include icon-interaction-small;
  265. }
  266. .col.video .title:after,
  267. .teaser.video .title:after {
  268. @include icon-video-small;
  269. }
  270. @media(min-width: 568px) {
  271. [date-type='fullwidth'], .teaser.fullwidth, .teasers[data-items="1"] {
  272. display: block;
  273. &::after {
  274. content: '';
  275. display: block;
  276. clear: both;
  277. }
  278. .title {
  279. @include h4;
  280. margin-top: 0.25em;
  281. }
  282. .image-box {
  283. float: left;
  284. }
  285. .kicker, .text-box {
  286. float: right;
  287. }
  288. &[data-image-size='s'] {
  289. .image-box::before {
  290. padding-top: 100%;
  291. }
  292. }
  293. &[data-image-size='l'] {
  294. .image-box::before {
  295. padding-top: 55%;
  296. }
  297. }
  298. @media(max-width: 999px) {
  299. .kicker, .text-box, .image-box {
  300. width: calc(50% - var(--col-padding));
  301. @media(min-width: 568px) {
  302. max-width: calc(50% - var(--col-padding));
  303. min-width: calc(50% - var(--col-padding));
  304. }
  305. }
  306. }
  307. @media(min-width: 1000px) {
  308. &[data-image-size='s'] {
  309. .image-box {
  310. width: calc((100% + var(--col-padding) * 2) / 12 * 5 - var(--col-padding) * 2);
  311. }
  312. .kicker, .text-box {
  313. width: calc((100% + var(--col-padding) * 2) / 12 * 7 - var(--col-padding) * 2);
  314. }
  315. }
  316. &[data-image-size='m'] {
  317. .image-box, .kicker, .text-box {
  318. width: calc(50% - var(--col-padding));
  319. }
  320. }
  321. &[data-image-size='l'] {
  322. .image-box {
  323. width: calc((100% + var(--col-padding) * 2) * 2 / 3 - var(--col-padding) * 2);
  324. }
  325. .kicker, .text-box {
  326. width: calc((100% + var(--col-padding) * 2) / 3 - var(--col-padding) * 2);
  327. }
  328. }
  329. }
  330. }
  331. }
  332. [data-background='lightblue'] .teaser {
  333. --hero-background: var(--theme-color-primary-dimmed-04);
  334. .image-box {
  335. background-color: rgba(#fff, 0.4);
  336. }
  337. }