All checks were successful
Create Release Package / build-release (push) Successful in 1m1s
Add custom CF7 form tags for booking requests: - [bnb_building_select] - Building filter dropdown - [bnb_room_select] - Room selection with capacity data - [bnb_date_checkin/checkout] - Date pickers with validation - [bnb_guests] - Guest count with capacity limits Features: - Server-side validation for all fields - Real-time AJAX availability checking - Automatic price calculation display - Booking creation on form submission - Guest record creation/linking - Custom mail tags for CF7 templates Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
345 lines
6.8 KiB
CSS
345 lines
6.8 KiB
CSS
/**
|
|
* WP BnB Contact Form 7 Integration Styles
|
|
*
|
|
* Styling for CF7 booking forms.
|
|
*
|
|
* @package Magdev\WpBnb
|
|
*/
|
|
|
|
/* Custom Properties */
|
|
:root {
|
|
--wp-bnb-cf7-primary: #2271b1;
|
|
--wp-bnb-cf7-success: #00a32a;
|
|
--wp-bnb-cf7-warning: #dba617;
|
|
--wp-bnb-cf7-error: #d63638;
|
|
--wp-bnb-cf7-text: #1d2327;
|
|
--wp-bnb-cf7-text-light: #646970;
|
|
--wp-bnb-cf7-border: #c3c4c7;
|
|
--wp-bnb-cf7-bg: #f0f0f1;
|
|
--wp-bnb-cf7-radius: 4px;
|
|
--wp-bnb-cf7-spacing: 1rem;
|
|
}
|
|
|
|
/* Form Layout */
|
|
.wp-bnb-booking-form,
|
|
.wp-bnb-inquiry-form {
|
|
max-width: 700px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.wp-bnb-booking-form h3,
|
|
.wp-bnb-booking-form h4,
|
|
.wp-bnb-inquiry-form h3,
|
|
.wp-bnb-inquiry-form h4 {
|
|
margin-top: 1.5em;
|
|
margin-bottom: 0.75em;
|
|
padding-bottom: 0.5em;
|
|
border-bottom: 1px solid var(--wp-bnb-cf7-border);
|
|
}
|
|
|
|
.wp-bnb-booking-form h3:first-child,
|
|
.wp-bnb-inquiry-form h3:first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
/* Form Rows */
|
|
.wp-bnb-form-row {
|
|
margin-bottom: var(--wp-bnb-cf7-spacing);
|
|
}
|
|
|
|
.wp-bnb-form-row-2col {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: var(--wp-bnb-cf7-spacing);
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.wp-bnb-form-row-2col {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Form Fields */
|
|
.wp-bnb-form-field {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.wp-bnb-form-field label {
|
|
display: block;
|
|
margin-bottom: 0.25rem;
|
|
font-weight: 600;
|
|
font-size: 0.875rem;
|
|
color: var(--wp-bnb-cf7-text);
|
|
}
|
|
|
|
/* Custom CF7 Tags Styling */
|
|
.wp-bnb-building-select,
|
|
.wp-bnb-room-select,
|
|
.wp-bnb-date-checkin,
|
|
.wp-bnb-date-checkout,
|
|
.wp-bnb-guests {
|
|
width: 100%;
|
|
padding: 0.5rem 0.75rem;
|
|
font-size: 1rem;
|
|
line-height: 1.5;
|
|
border: 1px solid var(--wp-bnb-cf7-border);
|
|
border-radius: var(--wp-bnb-cf7-radius);
|
|
background-color: #fff;
|
|
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
}
|
|
|
|
.wp-bnb-building-select:focus,
|
|
.wp-bnb-room-select:focus,
|
|
.wp-bnb-date-checkin:focus,
|
|
.wp-bnb-date-checkout:focus,
|
|
.wp-bnb-guests:focus {
|
|
outline: none;
|
|
border-color: var(--wp-bnb-cf7-primary);
|
|
box-shadow: 0 0 0 2px rgba(34, 113, 177, 0.25);
|
|
}
|
|
|
|
/* Select dropdown */
|
|
.wp-bnb-room-select optgroup {
|
|
font-weight: 600;
|
|
font-style: normal;
|
|
color: var(--wp-bnb-cf7-text);
|
|
}
|
|
|
|
/* Date inputs */
|
|
.wp-bnb-date-checkin,
|
|
.wp-bnb-date-checkout {
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* Number input */
|
|
.wp-bnb-guests {
|
|
max-width: 120px;
|
|
}
|
|
|
|
/* Availability Status */
|
|
.wp-bnb-availability-status {
|
|
padding: var(--wp-bnb-cf7-spacing);
|
|
margin: var(--wp-bnb-cf7-spacing) 0;
|
|
background-color: var(--wp-bnb-cf7-bg);
|
|
border-radius: var(--wp-bnb-cf7-radius);
|
|
text-align: center;
|
|
min-height: 50px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.wp-bnb-availability-status:empty {
|
|
display: none;
|
|
}
|
|
|
|
.wp-bnb-checking {
|
|
color: var(--wp-bnb-cf7-text-light);
|
|
font-style: italic;
|
|
}
|
|
|
|
.wp-bnb-checking::before {
|
|
content: "";
|
|
display: inline-block;
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-right: 8px;
|
|
border: 2px solid var(--wp-bnb-cf7-border);
|
|
border-top-color: var(--wp-bnb-cf7-primary);
|
|
border-radius: 50%;
|
|
animation: wp-bnb-spin 0.8s linear infinite;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
@keyframes wp-bnb-spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.wp-bnb-available {
|
|
color: var(--wp-bnb-cf7-success);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.wp-bnb-available::before {
|
|
content: "\2713";
|
|
display: inline-block;
|
|
margin-right: 8px;
|
|
font-size: 1.25em;
|
|
}
|
|
|
|
.wp-bnb-unavailable {
|
|
color: var(--wp-bnb-cf7-error);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.wp-bnb-unavailable::before {
|
|
content: "\2717";
|
|
display: inline-block;
|
|
margin-right: 8px;
|
|
font-size: 1.25em;
|
|
}
|
|
|
|
/* Price Display */
|
|
.wp-bnb-price-display {
|
|
padding: var(--wp-bnb-cf7-spacing);
|
|
margin: var(--wp-bnb-cf7-spacing) 0;
|
|
background-color: #e7f5ea;
|
|
border: 1px solid var(--wp-bnb-cf7-success);
|
|
border-radius: var(--wp-bnb-cf7-radius);
|
|
text-align: center;
|
|
}
|
|
|
|
.wp-bnb-price-display:empty {
|
|
display: none;
|
|
}
|
|
|
|
.wp-bnb-price-label {
|
|
color: var(--wp-bnb-cf7-text-light);
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.wp-bnb-price-amount {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
color: var(--wp-bnb-cf7-success);
|
|
margin: 0 0.5rem;
|
|
}
|
|
|
|
.wp-bnb-nights {
|
|
color: var(--wp-bnb-cf7-text-light);
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
/* Capacity Warning */
|
|
.wp-bnb-capacity-warning {
|
|
display: block;
|
|
margin-top: 0.25rem;
|
|
padding: 0.25rem 0.5rem;
|
|
font-size: 0.8125rem;
|
|
color: var(--wp-bnb-cf7-error);
|
|
background-color: #fcf0f1;
|
|
border-radius: var(--wp-bnb-cf7-radius);
|
|
}
|
|
|
|
/* Validation Errors */
|
|
.wpcf7-form-control-wrap .wpcf7-not-valid-tip {
|
|
color: var(--wp-bnb-cf7-error);
|
|
font-size: 0.8125rem;
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
.wpcf7-form-control.wpcf7-not-valid {
|
|
border-color: var(--wp-bnb-cf7-error);
|
|
}
|
|
|
|
/* Response Messages */
|
|
.wpcf7 form.sent .wpcf7-response-output {
|
|
border-color: var(--wp-bnb-cf7-success);
|
|
background-color: #e7f5ea;
|
|
color: var(--wp-bnb-cf7-success);
|
|
}
|
|
|
|
.wpcf7 form.failed .wpcf7-response-output,
|
|
.wpcf7 form.aborted .wpcf7-response-output,
|
|
.wpcf7 form.spam .wpcf7-response-output,
|
|
.wpcf7 form.invalid .wpcf7-response-output {
|
|
border-color: var(--wp-bnb-cf7-error);
|
|
background-color: #fcf0f1;
|
|
color: var(--wp-bnb-cf7-error);
|
|
}
|
|
|
|
/* Submit Button */
|
|
.wp-bnb-booking-form .wpcf7-submit,
|
|
.wp-bnb-inquiry-form .wpcf7-submit {
|
|
display: inline-block;
|
|
padding: 0.75rem 1.5rem;
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
color: #fff;
|
|
background-color: var(--wp-bnb-cf7-primary);
|
|
border: none;
|
|
border-radius: var(--wp-bnb-cf7-radius);
|
|
cursor: pointer;
|
|
transition: background-color 0.15s ease-in-out;
|
|
}
|
|
|
|
.wp-bnb-booking-form .wpcf7-submit:hover,
|
|
.wp-bnb-inquiry-form .wpcf7-submit:hover {
|
|
background-color: #135e96;
|
|
}
|
|
|
|
.wp-bnb-booking-form .wpcf7-submit:disabled,
|
|
.wp-bnb-inquiry-form .wpcf7-submit:disabled {
|
|
opacity: 0.7;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
/* Spinner */
|
|
.wpcf7 .wpcf7-spinner {
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
/* Hidden Room Field (for inquiry forms) */
|
|
.wp-bnb-inquiry-form input[type="hidden"] + .wpcf7-form-control-wrap {
|
|
display: none;
|
|
}
|
|
|
|
/* Form Section Headers */
|
|
.wp-bnb-booking-form hr,
|
|
.wp-bnb-inquiry-form hr {
|
|
margin: 1.5rem 0;
|
|
border: none;
|
|
border-top: 1px solid var(--wp-bnb-cf7-border);
|
|
}
|
|
|
|
/* Dark Mode Support */
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--wp-bnb-cf7-text: #f0f0f1;
|
|
--wp-bnb-cf7-text-light: #a7aaad;
|
|
--wp-bnb-cf7-border: #50575e;
|
|
--wp-bnb-cf7-bg: #2c3338;
|
|
}
|
|
|
|
.wp-bnb-building-select,
|
|
.wp-bnb-room-select,
|
|
.wp-bnb-date-checkin,
|
|
.wp-bnb-date-checkout,
|
|
.wp-bnb-guests {
|
|
background-color: #3c434a;
|
|
color: var(--wp-bnb-cf7-text);
|
|
}
|
|
|
|
.wp-bnb-price-display {
|
|
background-color: #1a3320;
|
|
border-color: var(--wp-bnb-cf7-success);
|
|
}
|
|
|
|
.wp-bnb-capacity-warning {
|
|
background-color: #3c1618;
|
|
}
|
|
|
|
.wpcf7 form.sent .wpcf7-response-output {
|
|
background-color: #1a3320;
|
|
}
|
|
|
|
.wpcf7 form.failed .wpcf7-response-output,
|
|
.wpcf7 form.aborted .wpcf7-response-output,
|
|
.wpcf7 form.spam .wpcf7-response-output,
|
|
.wpcf7 form.invalid .wpcf7-response-output {
|
|
background-color: #3c1618;
|
|
}
|
|
}
|
|
|
|
/* Print Styles */
|
|
@media print {
|
|
.wp-bnb-availability-status,
|
|
.wp-bnb-price-display,
|
|
.wpcf7-submit {
|
|
display: none;
|
|
}
|
|
}
|