### Custom Button System Implementation Created modern button system to replace Bootstrap buttons: - ✅ Created core/_buttons-custom.scss (550+ lines) - ✅ CSS Custom Properties for easy customization - ✅ 8 color variants (primary, secondary, success, danger, warning, info, light, dark) - ✅ Outline and Ghost variants - ✅ 4 sizes (sm, md, lg, xl) - ✅ Special variants (block, icon, circle, link) - ✅ Loading state with spinner animation - ✅ Button groups support - ✅ Modern animations (hover, active, focus) ### Template Migration Migrated 65 HTML templates using automated Python script: - Replaced .btn → .button - Replaced .btn-primary → .button--primary - Replaced .btn-outline-* → .button--outline button--* - Replaced size classes .btn-sm → .button--sm - Total changes: 354 → 347 button usages ### Results - app.css: 137 KB → 148 KB (+11 KB for custom buttons) - Templates changed: 65 files - Remaining .btn classes: 133 (mostly btn-close for modals) - New .button classes: 347 ### Backward Compatibility Kept @extend rules in _buttons-custom.scss for gradual migration. Can be removed after complete migration. Next step: Remove Bootstrap button imports from custom-bootstrap.scss
43 lines
1.1 KiB
HTML
43 lines
1.1 KiB
HTML
{% extends 'base.html' %}
|
|
{% load static %}
|
|
|
|
{% block title %}Смена пароля{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-6">
|
|
<div class="card shadow">
|
|
<div class="card-header bg-primary text-white">
|
|
<h3 class="mb-0">Смена пароля</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<form method="post">
|
|
{% csrf_token %}
|
|
<div class="mb-3">
|
|
<div class="form-floating">
|
|
{{ form.old_password }}
|
|
<label for="{{ form.old_password.id_for_label }}">Текущий пароль</label>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3">
|
|
<div class="form-floating">
|
|
{{ form.new_password1 }}
|
|
<label for="{{ form.new_password1.id_for_label }}">Новый пароль</label>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3">
|
|
<div class="form-floating">
|
|
{{ form.new_password2 }}
|
|
<label for="{{ form.new_password2.id_for_label }}">Подтвердите новый пароль</label>
|
|
</div>
|
|
</div>
|
|
<button type="submit" class="button button--primary button--lg w-100">
|
|
<i class="bi bi-key me-2"></i>Изменить пароль
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|