{% extends 'base.html.twig' %} {% block title %}{{ is_edit ? 'Modifier' : 'Nouvelle' }} offre - Admin{% endblock %} {% set inputClass = 'w-full px-4 py-3 border-2 border-gray-200 rounded-xl focus:ring-2 focus:ring-primary/20 focus:border-primary transition-all bg-gray-50 focus:bg-white' %} {% set labelClass = 'block text-sm font-medium text-gray-700 mb-2' %} {% set helpClass = 'mt-1.5 text-xs text-gray-400' %} {% set toggleClass = 'flex items-center gap-3 p-4 bg-gray-50 border-2 border-gray-200 rounded-xl cursor-pointer transition-all hover:border-primary/30 hover:bg-primary/5 has-[:checked]:border-primary has-[:checked]:bg-primary/5' %} {% set toggleKnob = 'w-10 h-6 bg-gray-300 peer-checked:bg-primary rounded-full relative transition-colors after:content-[\'\'] after:absolute after:top-0.5 after:left-0.5 after:w-5 after:h-5 after:bg-white after:rounded-full after:transition-transform peer-checked:after:translate-x-4 flex-shrink-0' %} {% block body %}
Nom, slug et accroche
{{ form.slug.vars.help }}
{% endif %} {{ form_errors(form.slug) }}{{ form.tagline.vars.help }}
{% endif %}Prix mensuel / annuel, engagement et tokens alloués
{{ form.priceMonthly.vars.help }}
{% endif %}{{ form.priceAnnual.vars.help }}
{% endif %}{{ form.commitmentLabel.vars.help }}
{% endif %}{{ form.monthlyTokens.vars.help }}
{% endif %}{{ form.tokensLabel.vars.help }}
{% endif %}Cochez les fonctionnalités disponibles dans cette offre
0 = pas d'accumulation · 3 = jusqu'à 3 mois · 6 = jusqu'à 6 mois
Label et destination du bouton d'appel à l'action
{{ form.ctaLabel.vars.help }}
{% endif %}{{ form.ctaUrl.vars.help }}
{% endif %}Dégradé appliqué au prix du plan (couleur gauche → couleur droite)
Préréglages
Valeur CSS générée
{{ form_widget(form.gradientCss, {'attr': { 'class': inputClass ~ ' font-mono text-xs text-gray-500', 'id': 'gradient-css-input', 'readonly': 'readonly' }}) }}Aperçu
{{ plan.name }}
30€/mois
Prix avec dégradé texte
30€/mois