More collapsibles
Этот коммит содержится в:
		
							родитель
							
								
									95fe377169
								
							
						
					
					
						Коммит
						85c46b2a37
					
				
							
								
								
									
										77
									
								
								src/lib/components/Collapsible.svelte
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										77
									
								
								src/lib/components/Collapsible.svelte
									
									
									
									
									
										Обычный файл
									
								
							| @ -0,0 +1,77 @@ | ||||
| <script> | ||||
| 	export let title | ||||
| 	export let text | ||||
| 	export let id | ||||
| </script> | ||||
| 
 | ||||
| <input id={id} class="toggle" type="checkbox" /> | ||||
| <label for={id} class="lbl-toggle top">{title}</label> | ||||
| <div class="collapsible-content"> | ||||
| 	<p>{@html text}</p> | ||||
| </div> | ||||
| 
 | ||||
| <style> | ||||
| 	input.toggle[type='checkbox'] { | ||||
| 		display: none; | ||||
| 	} | ||||
| 
 | ||||
| 	.lbl-toggle { | ||||
| 		display: block; | ||||
| 		margin-left: -0.3rem; | ||||
| 		padding: 0.2rem 0; | ||||
| 		font-size: 0.9rem; | ||||
| 		font-weight: normal; | ||||
| 		font-style: italic; | ||||
| 		color: var(--text-black); | ||||
| 		cursor: pointer; | ||||
| 		transition: all 200ms ease; | ||||
| 	} | ||||
| 
 | ||||
| 	.lbl-toggle.top { | ||||
| 		font-size: 0.85rem; | ||||
| 		font-weight: normal; | ||||
| 		font-style: normal; | ||||
| 	} | ||||
| 
 | ||||
| 	.lbl-toggle::before { | ||||
| 		content: ' '; | ||||
| 		display: inline-block; | ||||
| 		border-top: 5px solid transparent; | ||||
| 		border-bottom: 5px solid transparent; | ||||
| 		border-left: 5px solid currentColor; | ||||
| 		vertical-align: middle; | ||||
| 		margin-top: 2px; | ||||
| 		transform: translateX(-0.6rem) translateY(-2px); | ||||
| 		transition: transform 200ms ease-out; | ||||
| 	} | ||||
| 
 | ||||
| 	.collapsible-content { | ||||
| 		max-height: 0px; | ||||
| 		overflow: hidden; | ||||
| 		transition: max-height 200ms ease-in-out; | ||||
| 	} | ||||
| 
 | ||||
| 	.collapsible-content h4, | ||||
| 	.collapsible-content h5 { | ||||
| 		margin: 1.2rem 1rem 0 1rem; | ||||
| 	} | ||||
| 
 | ||||
| 	.collapsible-content p { | ||||
| 		padding: 0 1rem; | ||||
| 	} | ||||
| 
 | ||||
| 	.toggle:checked + .lbl-toggle + .collapsible-content { | ||||
| 		max-height: 10000px; | ||||
| 		border: 1px solid var(--dfrlab-lightgray); | ||||
| 		border-radius: 3px; | ||||
| 	} | ||||
| 
 | ||||
| 	.toggle:checked + .lbl-toggle::before { | ||||
| 		transform: rotate(90deg) translateY(0.6rem); | ||||
| 	} | ||||
| 
 | ||||
| 	.toggle:checked + .lbl-toggle { | ||||
| 		border-bottom-right-radius: 0; | ||||
| 		border-bottom-left-radius: 0; | ||||
| 	} | ||||
| </style> | ||||
| @ -11,6 +11,7 @@ | ||||
| 	import Controls from '$lib/components/Controls.svelte'; | ||||
|     import CardModal from '$lib/components/CardModal.svelte'; | ||||
| 	import AnimatedFilterIcon from '$lib/components/AnimatedFilterIcon.svelte'; | ||||
|     import Collapsible from '$lib/components/Collapsible.svelte'; | ||||
| 	import { splitString, haveOverlap, withinRange, includesTextSearch } from '$lib/utils/misc'; | ||||
| 	//import { setScales } from '$lib/utils/scales'; | ||||
| 	import { page } from '$app/stores'; | ||||
| @ -231,7 +232,7 @@ | ||||
| 	<div class="container"> | ||||
| 		{#each copy.intro as block} | ||||
| 			{#if block.type == 'concealed-text'} | ||||
| 				<p>{block.title}</p> | ||||
|                 <Collapsible title={block.title} text={block.text} id={block.id}/> | ||||
| 			{/if} | ||||
| 		{/each} | ||||
| 	</div> | ||||
| @ -336,7 +337,7 @@ | ||||
| 				<p>{block.text}</p> | ||||
| 			{/if} | ||||
| 			{#if block.type == 'concealed-text'} | ||||
| 				<p>{block.title}</p> | ||||
|                 <Collapsible title={block.title} text={block.text} id={block.id}/> | ||||
| 			{/if} | ||||
| 		{/each} | ||||
| 	</div> | ||||
|  | ||||
		Загрузка…
	
	
			
			x
			
			
		
	
		Ссылка в новой задаче
	
	Block a user
	 Maarten
						Maarten