Skip to content
Extraits de code Groupes Projets
  • nicod's avatar
    8ceaf65f
    feat: La grosse refonte v2 · 8ceaf65f
    nicod a rédigé
    On ne se base plus sur le constructeur de formulaires et un objet éditorial `blocktype`, mais sur des fichiers de config en .yaml, à l'instar des modèles gérés par inserer_modeles
    Cela implique donc de la suppression de code et de fichiers (toute la gestion des objets `blocktype`) et de nouvelles fonctions pour gérer proprement des fichiers de config.
    La fonction principale `blocktypes_lister_types` met tout ça en cache pour le hit (en static), et des fonctions utilitaires viennent taper dans ce cache.
    
    Il y a une procédure de migration (cf README.md), qui sera peut être déportée dans un deuxième plugin à part dans lequel je mettrai aussi des démos de blocks de base, pour alléger le code et les fichiers de celui ci.
    
    Restent à traiter les notions de block conteneur, et les contraintes parent/enfant, ne peut contenir que / être contenu que dans.
    Et une todo list qui s'allonge...
    8ceaf65f
    Historique
    feat: La grosse refonte v2
    nicod a rédigé
    On ne se base plus sur le constructeur de formulaires et un objet éditorial `blocktype`, mais sur des fichiers de config en .yaml, à l'instar des modèles gérés par inserer_modeles
    Cela implique donc de la suppression de code et de fichiers (toute la gestion des objets `blocktype`) et de nouvelles fonctions pour gérer proprement des fichiers de config.
    La fonction principale `blocktypes_lister_types` met tout ça en cache pour le hit (en static), et des fonctions utilitaires viennent taper dans ce cache.
    
    Il y a une procédure de migration (cf README.md), qui sera peut être déportée dans un deuxième plugin à part dans lequel je mettrai aussi des démos de blocks de base, pour alléger le code et les fichiers de celui ci.
    
    Restent à traiter les notions de block conteneur, et les contraintes parent/enfant, ne peut contenir que / être contenu que dans.
    Et une todo list qui s'allonge...
blocks_prive.css 3,39 Kio

.sp-icone-block {
	background-color: white;
	border-radius:    50%;
	display:          inline-flex;
	justify-content:  center;
	align-items:      center;
	width:            1.5rem;
	height:           1.5rem;
}

.boutons-flex {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
}

.objet_blocks {
	position: relative;
}

.objetblock__blocks {
	margin: var(--spip-box-spacing-x-normal);
}

.objetblock {
	position:       relative;
	overflow:       hidden;
	border:         1px solid var(--spip-color-gray-light);
	border-radius:  5px;
	margin-bottom:  calc(var(--spip-box-spacing-y-normal) * 2);
	padding:        0;
	container-type: inline-size;
}

.objetblock .objetblock {
	margin-bottom: 0;
}

.objet_blocks .item:hover {
	background-color: transparent;
}

.objetblock__header {
	background-color:     white;
	padding-inline-start: var(--spip-box-spacing-x-mini);
	min-height:           2.25rem;
	border-bottom:        1px solid var(--spip-color-gray-light);
	@container(width > 340px) {
		display:         flex;
		justify-content: space-between;
		align-items:     center;
	}
}
.objetblock__header.collapsed {
	border-bottom: none;
}

.objetblock[data-id="new"] .objetblock__header {
	padding-inline: var(--spip-box-spacing-x-mini);
}

.objetblock__header button,
#wysiwyg .objetblock__titre {
	margin: 0;
}

.objetblock__titre,
#wysiwyg .objetblock__content .objetblock__titre {
	position:    relative;
	display:     flex;
	align-items: center;
	padding:     0;
	font-weight: bold;
	text-align:  start;
}

.box .formulaire_editer_block,
.formulaire_editer_block {
	border:         none;
	box-shadow:     none !important;
	margin-top:     0;
	margin-bottom:  0;
	padding-inline: 0;
}

.formulaire_editer_block .editer-groupe {
	margin-inline:  0;
	padding-inline: var(--spip-box-spacing-x-mini);
}

.objetblock__titre .block__icone {
	margin-inline-end: 0.25em;
}

.objetblock__header > * {
	margin: 0;
}

.objet_blocks .actions {
	display:         flex;
	justify-content: flex-end;
	margin:          0;
	z-index:         1;
}

.objet_blocks .actions button,
.objet_blocks .actions .btn {
	flex-shrink:      0;
	cursor:           pointer;
	background-color: var(--spip-color-gray-lightest);
	border:           none;
	padding:          calc(var(--spip-btn-padding-y) / 2) calc(var(--spip-btn-padding-x) / 2);
	@container(width > 400px) {
		padding: var(--spip-btn-padding-y) var(--spip-btn-padding-x);
	}
}

.objet_blocks .actions button:hover,
.objet_blocks .actions .btn:hover {
	background-color: var(--spip-color-gray-lighter);
}

.objet_blocks .actions .puce_objet_popup {
	display: flex;
}

.objet_blocks .actions .move {
	cursor: move;
}

.item.deplacer-block-placeholder {
	background-color: var(--spip-color-theme-lighter);
}

.objetblock__content {
	padding: 0 calc(var(--spip-list-spacing-x) / 2);
}

.objetblock__content--edit {
	background-color: var(--spip-color-gray-lightest);
}

.formulaire_spip .editer_blocktype .choix {
	display:         flex;
	justify-content: flex-start;
	align-items:     baseline;
	padding-bottom:  0.5rem;
}

.formulaire_spip .editer_blocktype.obligatoire label {
	font-weight: normal;
}

.formulaire_spip .editer_blocktype .choix p:last-child,
#wysiwyg .editer_blocktype .choix p:last-child {
	margin-bottom: 0;
}

#wysiwyg .formulaire_spip .editer .explication {
	margin-bottom: 0;
}

.block__accordion_trigger[aria-expanded="true"] .block__icone--deplier {
	transform: rotate(90deg);
}