/* DESIGN TO LIGHT BLOCK */ /* Menu */ #menu [data-dtl="true"]::after, .project-item[data-dtl="true"] h3::after { --icon-color: var(--color-dtl); --icon-size: 1rem; --icon: var(--icon-leaf); content: ""; display: inline-block; width: var(--icon-size); height: var(--icon-size); background: var(--icon-color); mask-repeat: no-repeat; mask-position: center; mask-size: var(--icon-size); mask-image: var(--icon, var(--icon-circle)); margin-left: var(--space-8); } .project-item [data-dtl="true"]::after { --icon-size: 1.25rem; } /* Page */ #dtl-page { position: relative; overflow-y: auto; max-height: calc(100vh - var(--gutter) * 2); } #dtl-page::before { content: ""; display: block; position: absolute; inset: 0; border-radius: inherit; background-image: var(--background); background-repeat: no-repeat; background-size: cover; background-position: top center; background-attachment: fixed; filter: saturate(60%); mask-image: linear-gradient( 180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 50% ); } #dtl-page > * { max-width: 73.25rem; /* 1172px */ margin-inline: auto; } #dtl-page hgroup::before { --icon-size: var(--space-64); margin-bottom: var(--space-32); } #dtl-page .card ul { list-style: initial; padding-left: 1.25em; padding-block: 0.25rem; } /* Button */ #dtl-btn { position: fixed; bottom: 2rem; right: 2rem; width: 4.75rem; height: 2.5rem; color: var(--color-white); } #dtl-btn::before { width: 1.5rem; height: 1.5rem; position: absolute; left: 0.5rem; top: 0.5rem; } #dtl-btn[data-grade]::after, #dtl-btn .new { position: absolute; right: 0.25rem; top: 0.25rem; width: 2rem; height: 2rem; user-select: none; border-radius: var(--rounded-sm); } #dtl-btn[data-new][data-grade]::after { display: none; } #dtl-btn .new { color: var(--color-white); background: var(--color-primary-50); font-weight: 700; font-size: var(--text-xs); padding: 0.5rem 0; z-index: 10; } #dtl-btn .new::after { content: ""; width: 0.5rem; height: 0.5rem; border: 2px solid var(--color-black); border-radius: 50%; background: var(--color-primary); display: block; position: absolute; top: -0.333rem; right: -0.333rem; } /* Grades */ [data-grade]::after { content: attr(data-grade); color: transparent; border-radius: var(--rounded-sm); background-repeat: no-repeat; background-position: center; } [data-grade="A"]::after { background-image: var(--icon-grade-A); background-color: rgba(0, 148, 91, 0.2); } [data-grade="B"]::after { background-image: var(--icon-grade-B); background-color: rgba(94, 172, 13, 0.2); } [data-grade="C"]::after { background-image: var(--icon-grade-C); background-color: rgba(238, 175, 16, 0.2); } [data-grade="D"]::after { background-image: var(--icon-grade-D); background-color: rgba(242, 106, 79, 0.2); } [data-grade="E"]::after { background-image: var(--icon-grade-E); background-color: rgba(243, 45, 47, 0.2); } /* Panel */ #dtl-panel { --dtl-panel-w: 30rem; width: var(--dtl-panel-w); position: fixed; right: 2rem; top: 2rem; bottom: 5.5rem; color: var(--color-white); z-index: 999; overflow: hidden; } #dtl-panel.with-dialog { max-height: min(100vh - var(--gutter) * 2, 50rem); max-width: 25rem; top: 0; bottom: 0; margin-top: var(--gutter); z-index: 9999; } #dtl-panel > header { height: 3.5rem; } #dtl-panel .border-b { border-color: var(--color-white-10); } #dtl-panel [data-icon="close"] { --icon-size: 1.25rem; width: 2.5rem; height: 2.5rem; padding: 0; color: inherit; } #dtl-panel [role="tablist"] { display: flex; padding: 0 var(--space-32); overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; } #dtl-panel [role="tablist"]::-webkit-scrollbar { display: none; } #dtl-panel [role="tab"] { height: 2.5rem; padding: var(--space-12) 0.625rem; color: var(--color-grey-400); font-weight: 500; white-space: pre; border-bottom: 2px solid transparent; } #dtl-panel [role="tab"][aria-selected="true"] { color: var(--color-white); border-bottom-color: var(--color-white); } #dtl-panel section { height: calc(100% - 3.5rem); } #dtl-panel [role="tablist"] + section { height: calc(100% - 6rem); } #dtl-panel h3 { font-size: var(--text-sm); } #dtl-panel [data-grade]::after { display: block; width: 4.5rem; height: 4.5rem; background-size: 2rem; } #note-globale input[type="range"] { width: 100%; height: 0.5rem; background: linear-gradient( to right, rgba(243, 45, 47, 1) 0%, rgba(243, 45, 47, 1) 20%, rgba(242, 106, 79, 1) 20%, rgba(242, 106, 79, 1) 40%, rgba(238, 175, 16, 1) 40%, rgba(238, 175, 16, 1) 60%, rgba(94, 172, 13, 1) 60%, rgba(94, 172, 13, 1) 80%, rgba(0, 148, 91, 1) 80%, rgba(0, 148, 91, 1) 100% ); transform: scaleX(-1); } #note-globale input[type="range"]::-webkit-slider-thumb { height: 20px; width: 2px; border: none; border-radius: 2px; background: var(--color-white); -webkit-appearance: none; box-shadow: 0px 0px 2px 0px var(--color-black-50); } #note-globale input[type="range"]::-moz-range-thumb { height: 20px; width: 2px; border: none; border-radius: 2px; background: var(--color-white); -webkit-appearance: none; box-shadow: 0px 0px 2px 0px var(--color-black-50); } #note-globale input[type="range"]::-ms-thumb { height: 20px; width: 2px; border: none; border-radius: 2px; background: var(--color-white); -webkit-appearance: none; box-shadow: 0px 0px 2px 0px var(--color-black-50); } #positionnement { position: relative; } #positionnement dl { width: 100%; height: 192px; position: relative; background-image: url("data:image/svg+xml,%3Csvg width='130' height='130' viewBox='0 0 130 130' fill='none' stroke='white' stroke-opacity='0.1' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M115.3 1V129'/%3E%3Cpath d='M102.6 1V129'/%3E%3Cpath d='M89.9 1V129'/%3E%3Cpath d='M77.2 1V129'/%3E%3Cpath d='M64.5 1V129'/%3E%3Cpath d='M51.8 1V129'/%3E%3Cpath d='M39.1 1V129'/%3E%3Cpath d='M26.4 1V129'/%3E%3Cpath d='M13.7 1V129'/%3E%3Cpath d='M1 13.8L129 13.8'/%3E%3Cpath d='M1 26.6L129 26.6'/%3E%3Cpath d='M1 40L129 40'/%3E%3Cpath d='M1 52.2L129 52.2'/%3E%3Cpath d='M1 65L129 65'/%3E%3Cpath d='M1 77.8L129 77.8'/%3E%3Cpath d='M1 90.6L129 90.6'/%3E%3Cpath d='M1 103.4L129 103.4'/%3E%3Cpath d='M1 116.2L129 116.2'/%3E%3Cpath d='M1 65L129 65' stroke='%235E6060' stroke-opacity='1'/%3E%3Cpath d='M64.5 1V129' stroke='%235E6060' stroke-opacity='1'/%3E%3C/svg%3E%0A"); background-repeat: no-repeat; background-position: center; background-size: 8.125rem; user-select: none; } #positionnement dt { position: absolute; top: 0; color: var(--color-grey-400); text-align: center; } #positionnement dt::after { position: absolute; color: var(--color-white); } #positionnement dd::before, #positionnement dd::after { position: absolute; } #positionnement #design { top: calc(50% - 0.666em); right: calc(50% + 5rem); transform: translateY(-50%); } #positionnement #design::after { content: "Complexe"; bottom: -1.333em; right: 0; } #positionnement #design + dd::before { content: "Design"; top: calc(50% - 0.666em); left: calc(50% + 5rem); transform: translateY(-50%); color: var(--color-grey-400); } #positionnement #design + dd::after { content: "Sobre"; top: calc(50% + 0.666em); left: calc(50% + 5rem); transform: translateY(-50%); } #positionnement #poids { left: 50%; transform: translateX(-50%); } #positionnement #poids::after { content: " Léger"; position: static; } #positionnement #poids + dd::before { content: "Poids"; bottom: 0; left: calc(50% - 1.5em); transform: translateX(-50%); color: var(--color-grey-400); } #positionnement #poids + dd::after { content: " Lourd"; bottom: 0; left: calc(50% + 1.5em); transform: translateX(-50%); } #positionnement .dot { position: absolute; top: calc(50% + 0.6875rem); left: calc(50% - 0.25rem); width: 0.5rem; height: 0.5rem; background: var(--color-white); opacity: 0.5; border-radius: 50%; margin: 0; padding: 0; transform: translate(calc(var(--x) * 8rem / 10), calc(var(--y) * -8rem / 10)); } #positionnement .dot[aria-selected="true"] { box-shadow: 0 0 0 4px var(--color-white-20); opacity: 1; } #indicateur .grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: var(--space-32); } .gauge { --gauge-outer-size: 5rem; --gauge-inner-size: 4rem; width: var(--gauge-outer-size); height: var(--gauge-outer-size); border-radius: 50%; background-image: conic-gradient( from 0deg at 50% 50%, #eeaf10 0deg, #5eac0d 72deg, #00945b 144deg, #00945b 180deg, #f32d2f 180deg, #f26a4f 216deg, #eeaf10 360deg ); background-size: 100%; background-position: center; position: relative; appearance: none; display: block; text-align: center; justify-self: center; margin-bottom: 3rem; } .gauge::after { content: attr(data-value); display: block; padding: 1.125rem 1.25rem 1.125rem 0.875rem; font-size: var(--text-lg); width: var(--gauge-inner-size); height: var(--gauge-inner-size); border-radius: 50%; background: var(--color-black); position: absolute; top: calc((var(--gauge-outer-size) - var(--gauge-inner-size)) / 2); left: calc((var(--gauge-outer-size) - var(--gauge-inner-size)) / 2); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", sans-serif; font-variant-numeric: tabular-nums; font-weight: 600; line-height: 1; z-index: 10; } .gauge::before { content: ""; display: block; width: calc(var(--gauge-outer-size) / 2); height: var(--gauge-outer-size); border-radius: 50%; border-radius: 0 var(--gauge-outer-size) var(--gauge-outer-size) 0; background: blue; transform-origin: center; transform: rotate(180deg) scale(1.03); position: absolute; bottom: 0; right: 50%; background: var(--color-black); z-index: 1; } .gauge[data-value^="-"]::before { transform: rotate(0deg) scale(1.03); left: 50%; right: unset; } .gauge label::before { content: ""; display: block; width: calc(var(--gauge-outer-size) / 2); height: var(--gauge-outer-size); border-radius: 50%; border-radius: 0 var(--gauge-outer-size) var(--gauge-outer-size) 0; background: blue; transform-origin: left center; transform: rotate(calc(30deg * var(--value))) scale(1.03); background: var(--color-black); position: absolute; top: calc(-1 * var(--gauge-outer-size)); left: 50%; z-index: 1; } .gauge[data-value^="-"] label::before { transform: rotate(calc(180deg + 30deg * var(--value))) scale(1.03); } .gauge label::after { content: ""; display: block; position: absolute; top: calc(-1 * var(--gauge-outer-size) - 2px); left: calc(50% - 1px); z-index: 11; height: 12px; width: 2px; border: none; border-radius: 2px; background: var(--color-white); -webkit-appearance: none; box-shadow: 0px 0px 2px 0px var(--color-black-50); } .gauge label { position: absolute; top: 100%; left: -1rem; right: -1rem; font-weight: 500; padding: 0.5rem 0; } .gauge input[type="range"] { visibility: hidden; }