cms-block-editor 1.0.14 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -77,6 +77,13 @@
77
77
  transform: none;
78
78
  box-shadow: none;
79
79
  }
80
+ .cms-toolbar-seo {
81
+ padding: 0.5rem 1rem;
82
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
83
+ background: var(--cms-color-surface, #f9fafb);
84
+ display: flex;
85
+ justify-content: flex-end;
86
+ }
80
87
  .cms-editor-content {
81
88
  min-height: 300px;
82
89
  max-height: 600px;
@@ -3521,4 +3528,1172 @@
3521
3528
  grid-template-columns: 1fr;
3522
3529
  }
3523
3530
  }
3531
+ .cms-theme-customizer {
3532
+ position: fixed;
3533
+ top: 0;
3534
+ left: 0;
3535
+ right: 0;
3536
+ bottom: 0;
3537
+ z-index: 10000;
3538
+ display: flex;
3539
+ align-items: center;
3540
+ justify-content: flex-end;
3541
+ }
3542
+ .cms-theme-customizer-overlay {
3543
+ position: absolute;
3544
+ top: 0;
3545
+ left: 0;
3546
+ right: 0;
3547
+ bottom: 0;
3548
+ background: var(--cms-color-overlay, rgba(0, 0, 0, 0.5));
3549
+ backdrop-filter: blur(4px);
3550
+ }
3551
+ .cms-theme-customizer-panel {
3552
+ position: relative;
3553
+ background: var(--cms-color-background, #ffffff);
3554
+ width: 500px;
3555
+ max-width: 90vw;
3556
+ height: 100vh;
3557
+ display: flex;
3558
+ flex-direction: column;
3559
+ box-shadow: var(--cms-shadow-xxl, 0 25px 50px -12px rgba(0, 0, 0, 0.25));
3560
+ animation: slideLeft 0.3s ease-out;
3561
+ }
3562
+ .cms-theme-customizer-header {
3563
+ display: flex;
3564
+ justify-content: space-between;
3565
+ align-items: center;
3566
+ padding: var(--cms-spacing-lg, 1.5rem);
3567
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
3568
+ }
3569
+ .cms-theme-customizer-header h2 {
3570
+ margin: 0;
3571
+ font-size: var(--cms-typography-font-size-xl, 1.25rem);
3572
+ font-weight: var(--cms-typography-font-weight-bold, 600);
3573
+ color: var(--cms-color-text-primary, #1f2937);
3574
+ }
3575
+ .cms-theme-customizer-tabs {
3576
+ display: flex;
3577
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
3578
+ background: var(--cms-color-surface, #f9fafb);
3579
+ }
3580
+ .cms-theme-customizer-tabs button {
3581
+ flex: 1;
3582
+ padding: var(--cms-spacing-md, 1rem);
3583
+ background: none;
3584
+ border: none;
3585
+ border-bottom: 2px solid transparent;
3586
+ font-size: var(--cms-typography-font-size-sm, 0.875rem);
3587
+ font-weight: var(--cms-typography-font-weight-medium, 500);
3588
+ color: var(--cms-color-text-secondary, #6b7280);
3589
+ cursor: pointer;
3590
+ transition: var(--cms-transition-fast, 150ms);
3591
+ }
3592
+ .cms-theme-customizer-tabs button:hover {
3593
+ color: var(--cms-color-text-primary, #1f2937);
3594
+ background: var(--cms-color-surface-hover, #f3f4f6);
3595
+ }
3596
+ .cms-theme-customizer-tabs button.active {
3597
+ color: var(--cms-color-primary, #667eea);
3598
+ border-bottom-color: var(--cms-color-primary, #667eea);
3599
+ background: var(--cms-color-background, #ffffff);
3600
+ }
3601
+ .cms-theme-customizer-content {
3602
+ flex: 1;
3603
+ overflow-y: auto;
3604
+ padding: var(--cms-spacing-lg, 1.5rem);
3605
+ }
3606
+ .cms-customizer-section h3 {
3607
+ margin: var(--cms-spacing-lg, 1.5rem) 0 var(--cms-spacing-md, 1rem) 0;
3608
+ font-size: var(--cms-typography-font-size-md, 1rem);
3609
+ font-weight: var(--cms-typography-font-weight-semibold, 600);
3610
+ color: var(--cms-color-text-primary, #1f2937);
3611
+ }
3612
+ .cms-customizer-section h3:first-child {
3613
+ margin-top: 0;
3614
+ }
3615
+ .cms-color-grid,
3616
+ .cms-input-grid {
3617
+ display: grid;
3618
+ grid-template-columns: repeat(2, 1fr);
3619
+ gap: var(--cms-spacing-md, 1rem);
3620
+ margin-bottom: var(--cms-spacing-lg, 1.5rem);
3621
+ }
3622
+ .cms-color-input,
3623
+ .cms-text-input {
3624
+ display: flex;
3625
+ flex-direction: column;
3626
+ gap: var(--cms-spacing-xs, 0.25rem);
3627
+ }
3628
+ .cms-color-input label,
3629
+ .cms-text-input label {
3630
+ font-size: var(--cms-typography-font-size-xs, 0.75rem);
3631
+ font-weight: var(--cms-typography-font-weight-medium, 500);
3632
+ color: var(--cms-color-text-secondary, #6b7280);
3633
+ text-transform: uppercase;
3634
+ letter-spacing: var(--cms-typography-letter-spacing-wide, 0.025em);
3635
+ }
3636
+ .cms-color-input-wrapper {
3637
+ display: flex;
3638
+ gap: var(--cms-spacing-sm, 0.5rem);
3639
+ }
3640
+ .cms-color-input input[type=color] {
3641
+ width: 48px;
3642
+ height: 40px;
3643
+ border: 1px solid var(--cms-color-border, #e5e7eb);
3644
+ border-radius: var(--cms-radius-md, 0.5rem);
3645
+ cursor: pointer;
3646
+ }
3647
+ .cms-color-input input[type=text],
3648
+ .cms-text-input input[type=text] {
3649
+ flex: 1;
3650
+ padding: var(--cms-spacing-sm, 0.5rem) var(--cms-spacing-md, 1rem);
3651
+ background: var(--cms-color-surface, #f9fafb);
3652
+ border: 1px solid var(--cms-color-border, #e5e7eb);
3653
+ border-radius: var(--cms-radius-md, 0.5rem);
3654
+ font-size: var(--cms-typography-font-size-sm, 0.875rem);
3655
+ color: var(--cms-color-text-primary, #1f2937);
3656
+ font-family: var(--cms-typography-font-family-mono, monospace);
3657
+ transition: var(--cms-transition-fast, 150ms);
3658
+ }
3659
+ .cms-color-input input[type=text]:focus,
3660
+ .cms-text-input input[type=text]:focus {
3661
+ outline: none;
3662
+ border-color: var(--cms-color-focus, #667eea);
3663
+ box-shadow: var(--cms-shadow-outline, 0 0 0 3px rgba(102, 126, 234, 0.5));
3664
+ }
3665
+ .cms-import-export {
3666
+ display: flex;
3667
+ gap: var(--cms-spacing-md, 1rem);
3668
+ margin-bottom: var(--cms-spacing-lg, 1.5rem);
3669
+ }
3670
+ .cms-theme-preview-box {
3671
+ margin-top: var(--cms-spacing-md, 1rem);
3672
+ }
3673
+ .cms-theme-customizer-footer {
3674
+ display: flex;
3675
+ justify-content: space-between;
3676
+ align-items: center;
3677
+ padding: var(--cms-spacing-lg, 1.5rem);
3678
+ border-top: 1px solid var(--cms-color-border, #e5e7eb);
3679
+ background: var(--cms-color-surface, #f9fafb);
3680
+ }
3681
+ .cms-theme-customizer-footer > div {
3682
+ display: flex;
3683
+ gap: var(--cms-spacing-md, 1rem);
3684
+ }
3685
+ @keyframes fadeIn {
3686
+ from {
3687
+ opacity: 0;
3688
+ }
3689
+ to {
3690
+ opacity: 1;
3691
+ }
3692
+ }
3693
+ @keyframes fadeOut {
3694
+ from {
3695
+ opacity: 1;
3696
+ }
3697
+ to {
3698
+ opacity: 0;
3699
+ }
3700
+ }
3701
+ @keyframes slideUp {
3702
+ from {
3703
+ transform: translateY(20px);
3704
+ opacity: 0;
3705
+ }
3706
+ to {
3707
+ transform: translateY(0);
3708
+ opacity: 1;
3709
+ }
3710
+ }
3711
+ @keyframes slideDown {
3712
+ from {
3713
+ transform: translateY(-20px);
3714
+ opacity: 0;
3715
+ }
3716
+ to {
3717
+ transform: translateY(0);
3718
+ opacity: 1;
3719
+ }
3720
+ }
3721
+ @keyframes slideLeft {
3722
+ from {
3723
+ transform: translateX(100%);
3724
+ }
3725
+ to {
3726
+ transform: translateX(0);
3727
+ }
3728
+ }
3729
+ @keyframes slideRight {
3730
+ from {
3731
+ transform: translateX(-100%);
3732
+ }
3733
+ to {
3734
+ transform: translateX(0);
3735
+ }
3736
+ }
3737
+ @keyframes scaleUp {
3738
+ from {
3739
+ transform: scale(0.95);
3740
+ opacity: 0;
3741
+ }
3742
+ to {
3743
+ transform: scale(1);
3744
+ opacity: 1;
3745
+ }
3746
+ }
3747
+ @keyframes scaleDown {
3748
+ from {
3749
+ transform: scale(1.05);
3750
+ opacity: 0;
3751
+ }
3752
+ to {
3753
+ transform: scale(1);
3754
+ opacity: 1;
3755
+ }
3756
+ }
3757
+ @keyframes spin {
3758
+ from {
3759
+ transform: rotate(0deg);
3760
+ }
3761
+ to {
3762
+ transform: rotate(360deg);
3763
+ }
3764
+ }
3765
+ @keyframes pulse {
3766
+ 0%, 100% {
3767
+ opacity: 1;
3768
+ }
3769
+ 50% {
3770
+ opacity: 0.5;
3771
+ }
3772
+ }
3773
+ @keyframes bounce {
3774
+ 0%, 100% {
3775
+ transform: translateY(-25%);
3776
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
3777
+ }
3778
+ 50% {
3779
+ transform: translateY(0);
3780
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
3781
+ }
3782
+ }
3783
+ @media (max-width: 768px) {
3784
+ .cms-theme-customizer-panel {
3785
+ width: 100vw;
3786
+ }
3787
+ .cms-color-grid,
3788
+ .cms-input-grid {
3789
+ grid-template-columns: 1fr;
3790
+ }
3791
+ }
3792
+
3793
+ /* src/styles/themeCustomizer.css */
3794
+ .cms-theme-customizer-advanced {
3795
+ position: fixed;
3796
+ top: 0;
3797
+ left: 0;
3798
+ right: 0;
3799
+ bottom: 0;
3800
+ z-index: 10000;
3801
+ display: flex;
3802
+ align-items: center;
3803
+ justify-content: flex-end;
3804
+ }
3805
+ .cms-theme-customizer-overlay {
3806
+ position: absolute;
3807
+ top: 0;
3808
+ left: 0;
3809
+ right: 0;
3810
+ bottom: 0;
3811
+ background: rgba(0, 0, 0, 0.6);
3812
+ backdrop-filter: blur(8px);
3813
+ animation: fadeIn 0.3s ease-out;
3814
+ }
3815
+ .cms-theme-customizer-panel-advanced {
3816
+ position: relative;
3817
+ background: var(--cms-color-background, #ffffff);
3818
+ width: 600px;
3819
+ max-width: 95vw;
3820
+ height: 100vh;
3821
+ display: flex;
3822
+ flex-direction: column;
3823
+ box-shadow: -4px 0 24px rgba(0, 0, 0, 0.2);
3824
+ animation: slideLeft 0.3s ease-out;
3825
+ z-index: 1;
3826
+ }
3827
+ .cms-theme-customizer-header-advanced {
3828
+ display: flex;
3829
+ justify-content: space-between;
3830
+ align-items: center;
3831
+ padding: 1.5rem;
3832
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
3833
+ background: var(--cms-color-surface, #f9fafb);
3834
+ }
3835
+ .cms-header-left {
3836
+ display: flex;
3837
+ align-items: center;
3838
+ gap: 1rem;
3839
+ }
3840
+ .cms-header-left h2 {
3841
+ margin: 0;
3842
+ font-size: 1.5rem;
3843
+ font-weight: 700;
3844
+ color: var(--cms-color-text-primary, #1f2937);
3845
+ }
3846
+ .cms-theme-name-badge {
3847
+ padding: 0.25rem 0.75rem;
3848
+ background: var(--cms-color-primary-light, #e0e7ff);
3849
+ color: var(--cms-color-primary, #667eea);
3850
+ border-radius: 12px;
3851
+ font-size: 0.75rem;
3852
+ font-weight: 600;
3853
+ text-transform: uppercase;
3854
+ letter-spacing: 0.5px;
3855
+ }
3856
+ .cms-header-actions {
3857
+ display: flex;
3858
+ gap: 0.5rem;
3859
+ align-items: center;
3860
+ }
3861
+ .cms-icon-btn {
3862
+ width: 36px;
3863
+ height: 36px;
3864
+ display: flex;
3865
+ align-items: center;
3866
+ justify-content: center;
3867
+ background: var(--cms-color-surface, #f3f4f6);
3868
+ border: 1px solid var(--cms-color-border, #e5e7eb);
3869
+ border-radius: 8px;
3870
+ font-size: 1.25rem;
3871
+ cursor: pointer;
3872
+ transition: all 0.2s;
3873
+ color: var(--cms-color-text-primary, #1f2937);
3874
+ }
3875
+ .cms-icon-btn:hover:not(:disabled) {
3876
+ background: var(--cms-color-primary, #667eea);
3877
+ color: white;
3878
+ border-color: var(--cms-color-primary, #667eea);
3879
+ transform: translateY(-1px);
3880
+ }
3881
+ .cms-icon-btn:disabled {
3882
+ opacity: 0.4;
3883
+ cursor: not-allowed;
3884
+ }
3885
+ .cms-close-btn-advanced {
3886
+ width: 36px;
3887
+ height: 36px;
3888
+ display: flex;
3889
+ align-items: center;
3890
+ justify-content: center;
3891
+ background: none;
3892
+ border: none;
3893
+ font-size: 2rem;
3894
+ color: var(--cms-color-text-secondary, #6b7280);
3895
+ cursor: pointer;
3896
+ transition: all 0.2s;
3897
+ border-radius: 8px;
3898
+ }
3899
+ .cms-close-btn-advanced:hover {
3900
+ background: var(--cms-color-error-light, #fee2e2);
3901
+ color: var(--cms-color-error, #ef4444);
3902
+ }
3903
+ .cms-search-bar {
3904
+ padding: 1rem 1.5rem;
3905
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
3906
+ }
3907
+ .cms-search-input {
3908
+ width: 100%;
3909
+ padding: 0.75rem 1rem;
3910
+ background: var(--cms-color-surface, #f9fafb);
3911
+ border: 1px solid var(--cms-color-border, #e5e7eb);
3912
+ border-radius: 8px;
3913
+ font-size: 0.875rem;
3914
+ color: var(--cms-color-text-primary, #1f2937);
3915
+ transition: all 0.2s;
3916
+ }
3917
+ .cms-search-input:focus {
3918
+ outline: none;
3919
+ border-color: var(--cms-color-primary, #667eea);
3920
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
3921
+ }
3922
+ .cms-search-input::placeholder {
3923
+ color: var(--cms-color-text-tertiary, #9ca3af);
3924
+ }
3925
+ .cms-theme-tabs-advanced {
3926
+ display: flex;
3927
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
3928
+ background: var(--cms-color-surface, #f9fafb);
3929
+ overflow-x: auto;
3930
+ scrollbar-width: none;
3931
+ }
3932
+ .cms-theme-tabs-advanced::-webkit-scrollbar {
3933
+ display: none;
3934
+ }
3935
+ .cms-tab-btn-advanced {
3936
+ flex: 1;
3937
+ min-width: 80px;
3938
+ padding: 1rem 0.75rem;
3939
+ background: none;
3940
+ border: none;
3941
+ border-bottom: 2px solid transparent;
3942
+ display: flex;
3943
+ flex-direction: column;
3944
+ align-items: center;
3945
+ gap: 0.25rem;
3946
+ cursor: pointer;
3947
+ transition: all 0.2s;
3948
+ color: var(--cms-color-text-secondary, #6b7280);
3949
+ }
3950
+ .cms-tab-btn-advanced:hover {
3951
+ background: var(--cms-color-surface-hover, #f3f4f6);
3952
+ color: var(--cms-color-text-primary, #1f2937);
3953
+ }
3954
+ .cms-tab-btn-advanced.active {
3955
+ color: var(--cms-color-primary, #667eea);
3956
+ border-bottom-color: var(--cms-color-primary, #667eea);
3957
+ background: var(--cms-color-background, #ffffff);
3958
+ }
3959
+ .cms-tab-icon {
3960
+ font-size: 1.25rem;
3961
+ }
3962
+ .cms-tab-label {
3963
+ font-size: 0.75rem;
3964
+ font-weight: 600;
3965
+ text-transform: uppercase;
3966
+ letter-spacing: 0.5px;
3967
+ }
3968
+ .cms-theme-content-advanced {
3969
+ flex: 1;
3970
+ overflow-y: auto;
3971
+ padding: 1.5rem;
3972
+ }
3973
+ .cms-brand-generator {
3974
+ background:
3975
+ linear-gradient(
3976
+ 135deg,
3977
+ var(--cms-color-primary-light, #e0e7ff) 0%,
3978
+ var(--cms-color-secondary-light, #f3e8ff) 100%);
3979
+ padding: 1.5rem;
3980
+ border-radius: 12px;
3981
+ margin-bottom: 2rem;
3982
+ }
3983
+ .cms-brand-generator h3 {
3984
+ margin: 0 0 1rem 0;
3985
+ font-size: 1rem;
3986
+ font-weight: 600;
3987
+ color: var(--cms-color-text-primary, #1f2937);
3988
+ }
3989
+ .cms-brand-input-group {
3990
+ display: flex;
3991
+ gap: 0.75rem;
3992
+ align-items: center;
3993
+ }
3994
+ .cms-brand-color-picker {
3995
+ width: 60px;
3996
+ height: 48px;
3997
+ border: 2px solid var(--cms-color-border, #e5e7eb);
3998
+ border-radius: 8px;
3999
+ cursor: pointer;
4000
+ }
4001
+ .cms-brand-color-input {
4002
+ flex: 1;
4003
+ padding: 0.75rem 1rem;
4004
+ background: white;
4005
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4006
+ border-radius: 8px;
4007
+ font-family: monospace;
4008
+ font-size: 0.875rem;
4009
+ }
4010
+ .cms-color-group {
4011
+ margin-bottom: 2rem;
4012
+ }
4013
+ .cms-color-group h3 {
4014
+ margin: 0 0 1rem 0;
4015
+ font-size: 0.875rem;
4016
+ font-weight: 600;
4017
+ color: var(--cms-color-text-primary, #1f2937);
4018
+ text-transform: uppercase;
4019
+ letter-spacing: 0.5px;
4020
+ }
4021
+ .cms-color-grid-advanced {
4022
+ display: grid;
4023
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
4024
+ gap: 1rem;
4025
+ }
4026
+ .cms-advanced-color-input {
4027
+ display: flex;
4028
+ flex-direction: column;
4029
+ gap: 0.5rem;
4030
+ }
4031
+ .cms-advanced-color-input label {
4032
+ font-size: 0.75rem;
4033
+ font-weight: 500;
4034
+ color: var(--cms-color-text-secondary, #6b7280);
4035
+ }
4036
+ .cms-color-input-wrapper-advanced {
4037
+ position: relative;
4038
+ display: flex;
4039
+ gap: 0.5rem;
4040
+ align-items: center;
4041
+ }
4042
+ .cms-color-swatch {
4043
+ width: 40px;
4044
+ height: 40px;
4045
+ border-radius: 8px;
4046
+ border: 2px solid var(--cms-color-border, #e5e7eb);
4047
+ cursor: pointer;
4048
+ transition: all 0.2s;
4049
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
4050
+ }
4051
+ .cms-color-swatch:hover {
4052
+ transform: scale(1.05);
4053
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
4054
+ }
4055
+ .cms-color-text-input {
4056
+ flex: 1;
4057
+ padding: 0.5rem 0.75rem;
4058
+ background: var(--cms-color-surface, #f9fafb);
4059
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4060
+ border-radius: 6px;
4061
+ font-family: monospace;
4062
+ font-size: 0.875rem;
4063
+ color: var(--cms-color-text-primary, #1f2937);
4064
+ transition: all 0.2s;
4065
+ }
4066
+ .cms-color-text-input:focus {
4067
+ outline: none;
4068
+ border-color: var(--cms-color-primary, #667eea);
4069
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
4070
+ }
4071
+ .cms-color-picker-popover {
4072
+ position: absolute;
4073
+ top: 100%;
4074
+ left: 0;
4075
+ margin-top: 0.5rem;
4076
+ background: white;
4077
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4078
+ border-radius: 12px;
4079
+ padding: 1rem;
4080
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
4081
+ z-index: 100;
4082
+ animation: scaleUp 0.2s ease-out;
4083
+ }
4084
+ .cms-color-picker-native {
4085
+ width: 200px;
4086
+ height: 150px;
4087
+ border: none;
4088
+ border-radius: 8px;
4089
+ cursor: pointer;
4090
+ }
4091
+ .cms-color-presets {
4092
+ display: grid;
4093
+ grid-template-columns: repeat(4, 1fr);
4094
+ gap: 0.5rem;
4095
+ margin-top: 0.75rem;
4096
+ }
4097
+ .cms-color-preset {
4098
+ width: 40px;
4099
+ height: 40px;
4100
+ border-radius: 6px;
4101
+ cursor: pointer;
4102
+ transition: all 0.2s;
4103
+ border: 2px solid transparent;
4104
+ }
4105
+ .cms-color-preset:hover {
4106
+ transform: scale(1.1);
4107
+ border-color: var(--cms-color-primary, #667eea);
4108
+ }
4109
+ .cms-property-group {
4110
+ margin-bottom: 2rem;
4111
+ }
4112
+ .cms-property-group h3 {
4113
+ margin: 0 0 1rem 0;
4114
+ font-size: 0.875rem;
4115
+ font-weight: 600;
4116
+ color: var(--cms-color-text-primary, #1f2937);
4117
+ text-transform: uppercase;
4118
+ letter-spacing: 0.5px;
4119
+ }
4120
+ .cms-property-grid {
4121
+ display: grid;
4122
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
4123
+ gap: 1rem;
4124
+ }
4125
+ .cms-property-input {
4126
+ display: flex;
4127
+ flex-direction: column;
4128
+ gap: 0.5rem;
4129
+ }
4130
+ .cms-property-input label {
4131
+ font-size: 0.75rem;
4132
+ font-weight: 500;
4133
+ color: var(--cms-color-text-secondary, #6b7280);
4134
+ }
4135
+ .cms-property-input-field {
4136
+ padding: 0.5rem 0.75rem;
4137
+ background: var(--cms-color-surface, #f9fafb);
4138
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4139
+ border-radius: 6px;
4140
+ font-size: 0.875rem;
4141
+ color: var(--cms-color-text-primary, #1f2937);
4142
+ transition: all 0.2s;
4143
+ }
4144
+ .cms-property-input-field:focus {
4145
+ outline: none;
4146
+ border-color: var(--cms-color-primary, #667eea);
4147
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
4148
+ }
4149
+ .cms-spacing-visual {
4150
+ display: flex;
4151
+ flex-direction: column;
4152
+ gap: 1rem;
4153
+ }
4154
+ .cms-spacing-item {
4155
+ display: grid;
4156
+ grid-template-columns: 60px 1fr 120px;
4157
+ gap: 1rem;
4158
+ align-items: center;
4159
+ }
4160
+ .cms-spacing-label {
4161
+ font-size: 0.75rem;
4162
+ font-weight: 600;
4163
+ color: var(--cms-color-text-secondary, #6b7280);
4164
+ }
4165
+ .cms-spacing-bar {
4166
+ height: 32px;
4167
+ background: var(--cms-color-primary, #667eea);
4168
+ border-radius: 4px;
4169
+ display: flex;
4170
+ align-items: center;
4171
+ padding: 0 0.75rem;
4172
+ color: white;
4173
+ font-size: 0.75rem;
4174
+ font-weight: 600;
4175
+ transition: all 0.2s;
4176
+ }
4177
+ .cms-spacing-input {
4178
+ padding: 0.5rem 0.75rem;
4179
+ background: var(--cms-color-surface, #f9fafb);
4180
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4181
+ border-radius: 6px;
4182
+ font-size: 0.875rem;
4183
+ font-family: monospace;
4184
+ }
4185
+ .cms-radius-grid {
4186
+ display: grid;
4187
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
4188
+ gap: 1rem;
4189
+ }
4190
+ .cms-radius-item {
4191
+ display: flex;
4192
+ flex-direction: column;
4193
+ gap: 0.5rem;
4194
+ }
4195
+ .cms-radius-preview {
4196
+ width: 100%;
4197
+ height: 60px;
4198
+ background: var(--cms-color-primary, #667eea);
4199
+ border: 2px solid var(--cms-color-border, #e5e7eb);
4200
+ }
4201
+ .cms-shadow-grid {
4202
+ display: grid;
4203
+ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
4204
+ gap: 1rem;
4205
+ }
4206
+ .cms-shadow-item {
4207
+ display: flex;
4208
+ flex-direction: column;
4209
+ gap: 0.5rem;
4210
+ }
4211
+ .cms-shadow-preview {
4212
+ width: 100%;
4213
+ height: 60px;
4214
+ background: white;
4215
+ border-radius: 8px;
4216
+ }
4217
+ .cms-gradient-grid {
4218
+ display: grid;
4219
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
4220
+ gap: 1rem;
4221
+ }
4222
+ .cms-gradient-item {
4223
+ display: flex;
4224
+ flex-direction: column;
4225
+ gap: 0.5rem;
4226
+ }
4227
+ .cms-gradient-preview {
4228
+ width: 100%;
4229
+ height: 80px;
4230
+ border-radius: 8px;
4231
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4232
+ }
4233
+ .cms-validation {
4234
+ padding: 1rem;
4235
+ border-radius: 8px;
4236
+ font-size: 0.875rem;
4237
+ }
4238
+ .cms-validation.valid {
4239
+ background: var(--cms-color-success-light, #d1fae5);
4240
+ color: var(--cms-color-success-dark, #065f46);
4241
+ }
4242
+ .cms-validation.invalid {
4243
+ background: var(--cms-color-error-light, #fee2e2);
4244
+ color: var(--cms-color-error-dark, #991b1b);
4245
+ }
4246
+ .cms-validation-success {
4247
+ display: flex;
4248
+ align-items: center;
4249
+ gap: 0.5rem;
4250
+ font-weight: 600;
4251
+ }
4252
+ .cms-validation-errors ul {
4253
+ margin: 0.5rem 0 0 0;
4254
+ padding-left: 1.5rem;
4255
+ }
4256
+ .cms-preview-tab {
4257
+ padding: 2rem;
4258
+ min-height: 100%;
4259
+ }
4260
+ .cms-preview-section {
4261
+ display: flex;
4262
+ flex-direction: column;
4263
+ gap: 2rem;
4264
+ }
4265
+ .cms-preview-colors {
4266
+ display: grid;
4267
+ grid-template-columns: repeat(3, 1fr);
4268
+ gap: 1rem;
4269
+ }
4270
+ .cms-preview-color-box {
4271
+ padding: 2rem;
4272
+ border-radius: 12px;
4273
+ text-align: center;
4274
+ font-weight: 600;
4275
+ font-size: 0.875rem;
4276
+ }
4277
+ .cms-preview-card {
4278
+ display: flex;
4279
+ flex-direction: column;
4280
+ gap: 1rem;
4281
+ }
4282
+ .cms-preview-typography {
4283
+ display: flex;
4284
+ flex-direction: column;
4285
+ gap: 1rem;
4286
+ }
4287
+ .cms-theme-footer-advanced {
4288
+ display: flex;
4289
+ justify-content: space-between;
4290
+ align-items: center;
4291
+ padding: 1.5rem;
4292
+ border-top: 1px solid var(--cms-color-border, #e5e7eb);
4293
+ background: var(--cms-color-surface, #f9fafb);
4294
+ }
4295
+ .cms-footer-actions {
4296
+ display: flex;
4297
+ gap: 0.75rem;
4298
+ }
4299
+ .cms-select {
4300
+ padding: 0.5rem 0.75rem;
4301
+ background: var(--cms-color-surface, #f9fafb);
4302
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4303
+ border-radius: 6px;
4304
+ font-size: 0.875rem;
4305
+ color: var(--cms-color-text-primary, #1f2937);
4306
+ cursor: pointer;
4307
+ }
4308
+ @media (max-width: 768px) {
4309
+ .cms-theme-customizer-panel-advanced {
4310
+ width: 100vw;
4311
+ }
4312
+ .cms-color-grid-advanced,
4313
+ .cms-property-grid {
4314
+ grid-template-columns: 1fr;
4315
+ }
4316
+ .cms-brand-input-group {
4317
+ flex-direction: column;
4318
+ }
4319
+ .cms-brand-color-picker {
4320
+ width: 100%;
4321
+ }
4322
+ }
4323
+
4324
+ /* src/styles/seo.css */
4325
+ .cms-seo-trigger {
4326
+ padding: 0.5rem 1rem;
4327
+ background: var(--cms-color-primary, #667eea);
4328
+ color: white;
4329
+ border: none;
4330
+ border-radius: 6px;
4331
+ font-size: 0.875rem;
4332
+ font-weight: 600;
4333
+ cursor: pointer;
4334
+ transition: all 0.2s;
4335
+ }
4336
+ .cms-seo-trigger:hover {
4337
+ background: var(--cms-color-primary-hover, #5568d3);
4338
+ transform: translateY(-1px);
4339
+ }
4340
+ .cms-seo-panel {
4341
+ position: fixed;
4342
+ top: 0;
4343
+ left: 0;
4344
+ right: 0;
4345
+ bottom: 0;
4346
+ z-index: 9999;
4347
+ display: flex;
4348
+ align-items: center;
4349
+ justify-content: center;
4350
+ }
4351
+ .cms-seo-overlay {
4352
+ position: absolute;
4353
+ top: 0;
4354
+ left: 0;
4355
+ right: 0;
4356
+ bottom: 0;
4357
+ background: rgba(0, 0, 0, 0.5);
4358
+ backdrop-filter: blur(4px);
4359
+ }
4360
+ .cms-seo-content {
4361
+ position: relative;
4362
+ background: var(--cms-color-background, #ffffff);
4363
+ width: 700px;
4364
+ max-width: 95vw;
4365
+ max-height: 90vh;
4366
+ border-radius: 12px;
4367
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
4368
+ display: flex;
4369
+ flex-direction: column;
4370
+ animation: slideUp 0.3s ease-out;
4371
+ }
4372
+ @keyframes slideUp {
4373
+ from {
4374
+ opacity: 0;
4375
+ transform: translateY(20px);
4376
+ }
4377
+ to {
4378
+ opacity: 1;
4379
+ transform: translateY(0);
4380
+ }
4381
+ }
4382
+ .cms-seo-header {
4383
+ display: flex;
4384
+ justify-content: space-between;
4385
+ align-items: center;
4386
+ padding: 1.5rem;
4387
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
4388
+ }
4389
+ .cms-seo-header h2 {
4390
+ margin: 0;
4391
+ font-size: 1.5rem;
4392
+ font-weight: 700;
4393
+ color: var(--cms-color-text-primary, #1f2937);
4394
+ }
4395
+ .cms-seo-close {
4396
+ width: 36px;
4397
+ height: 36px;
4398
+ display: flex;
4399
+ align-items: center;
4400
+ justify-content: center;
4401
+ background: none;
4402
+ border: none;
4403
+ font-size: 2rem;
4404
+ color: var(--cms-color-text-secondary, #6b7280);
4405
+ cursor: pointer;
4406
+ border-radius: 6px;
4407
+ transition: all 0.2s;
4408
+ }
4409
+ .cms-seo-close:hover {
4410
+ background: var(--cms-color-error-light, #fee2e2);
4411
+ color: var(--cms-color-error, #ef4444);
4412
+ }
4413
+ .cms-seo-tabs {
4414
+ display: flex;
4415
+ border-bottom: 1px solid var(--cms-color-border, #e5e7eb);
4416
+ background: var(--cms-color-surface, #f9fafb);
4417
+ }
4418
+ .cms-seo-tabs button {
4419
+ flex: 1;
4420
+ padding: 1rem;
4421
+ background: none;
4422
+ border: none;
4423
+ border-bottom: 2px solid transparent;
4424
+ font-size: 0.875rem;
4425
+ font-weight: 600;
4426
+ color: var(--cms-color-text-secondary, #6b7280);
4427
+ cursor: pointer;
4428
+ transition: all 0.2s;
4429
+ }
4430
+ .cms-seo-tabs button:hover {
4431
+ background: var(--cms-color-surface-hover, #f3f4f6);
4432
+ color: var(--cms-color-text-primary, #1f2937);
4433
+ }
4434
+ .cms-seo-tabs button.active {
4435
+ color: var(--cms-color-primary, #667eea);
4436
+ border-bottom-color: var(--cms-color-primary, #667eea);
4437
+ background: var(--cms-color-background, #ffffff);
4438
+ }
4439
+ .cms-seo-body {
4440
+ flex: 1;
4441
+ overflow-y: auto;
4442
+ padding: 1.5rem;
4443
+ }
4444
+ .cms-seo-tab {
4445
+ display: flex;
4446
+ flex-direction: column;
4447
+ gap: 1rem;
4448
+ }
4449
+ .cms-seo-tab h3 {
4450
+ margin: 1rem 0 0.5rem 0;
4451
+ font-size: 1rem;
4452
+ font-weight: 600;
4453
+ color: var(--cms-color-text-primary, #1f2937);
4454
+ }
4455
+ .cms-seo-tab h3:first-child {
4456
+ margin-top: 0;
4457
+ }
4458
+ .cms-seo-field {
4459
+ display: flex;
4460
+ flex-direction: column;
4461
+ gap: 0.5rem;
4462
+ }
4463
+ .cms-seo-field label {
4464
+ font-size: 0.875rem;
4465
+ font-weight: 500;
4466
+ color: var(--cms-color-text-primary, #1f2937);
4467
+ display: flex;
4468
+ justify-content: space-between;
4469
+ align-items: center;
4470
+ }
4471
+ .cms-char-count {
4472
+ font-size: 0.75rem;
4473
+ color: var(--cms-color-text-tertiary, #9ca3af);
4474
+ font-weight: 400;
4475
+ }
4476
+ .cms-seo-field input,
4477
+ .cms-seo-field textarea,
4478
+ .cms-seo-field select {
4479
+ padding: 0.75rem;
4480
+ background: var(--cms-color-surface, #f9fafb);
4481
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4482
+ border-radius: 6px;
4483
+ font-size: 0.875rem;
4484
+ color: var(--cms-color-text-primary, #1f2937);
4485
+ font-family: inherit;
4486
+ transition: all 0.2s;
4487
+ }
4488
+ .cms-seo-field input:focus,
4489
+ .cms-seo-field textarea:focus,
4490
+ .cms-seo-field select:focus {
4491
+ outline: none;
4492
+ border-color: var(--cms-color-primary, #667eea);
4493
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
4494
+ }
4495
+ .cms-seo-field textarea {
4496
+ resize: vertical;
4497
+ min-height: 60px;
4498
+ }
4499
+ .cms-seo-field-with-action {
4500
+ display: flex;
4501
+ gap: 0.5rem;
4502
+ }
4503
+ .cms-seo-field-with-action input {
4504
+ flex: 1;
4505
+ }
4506
+ .cms-btn-icon {
4507
+ width: 40px;
4508
+ height: 40px;
4509
+ display: flex;
4510
+ align-items: center;
4511
+ justify-content: center;
4512
+ background: var(--cms-color-surface, #f3f4f6);
4513
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4514
+ border-radius: 6px;
4515
+ font-size: 1.25rem;
4516
+ cursor: pointer;
4517
+ transition: all 0.2s;
4518
+ }
4519
+ .cms-btn-icon:hover {
4520
+ background: var(--cms-color-primary, #667eea);
4521
+ border-color: var(--cms-color-primary, #667eea);
4522
+ transform: scale(1.05);
4523
+ }
4524
+ .cms-seo-validation-errors {
4525
+ padding: 1rem;
4526
+ background: var(--cms-color-error-light, #fee2e2);
4527
+ border: 1px solid var(--cms-color-error, #ef4444);
4528
+ border-radius: 6px;
4529
+ font-size: 0.875rem;
4530
+ color: var(--cms-color-error-dark, #991b1b);
4531
+ }
4532
+ .cms-seo-validation-errors ul {
4533
+ margin: 0.5rem 0 0 0;
4534
+ padding-left: 1.5rem;
4535
+ }
4536
+ .cms-seo-info {
4537
+ padding: 1rem;
4538
+ background: var(--cms-color-info-light, #dbeafe);
4539
+ border: 1px solid var(--cms-color-info, #3b82f6);
4540
+ border-radius: 6px;
4541
+ font-size: 0.875rem;
4542
+ color: var(--cms-color-info-dark, #1e40af);
4543
+ }
4544
+ .cms-seo-analysis-empty {
4545
+ display: flex;
4546
+ flex-direction: column;
4547
+ align-items: center;
4548
+ justify-content: center;
4549
+ gap: 1rem;
4550
+ padding: 3rem 1.5rem;
4551
+ text-align: center;
4552
+ color: var(--cms-color-text-secondary, #6b7280);
4553
+ }
4554
+ .cms-seo-score {
4555
+ display: flex;
4556
+ flex-direction: column;
4557
+ align-items: center;
4558
+ gap: 1rem;
4559
+ padding: 2rem;
4560
+ border: 3px solid;
4561
+ border-radius: 12px;
4562
+ margin-bottom: 1rem;
4563
+ }
4564
+ .cms-seo-score-circle {
4565
+ width: 100px;
4566
+ height: 100px;
4567
+ border-radius: 50%;
4568
+ display: flex;
4569
+ align-items: center;
4570
+ justify-content: center;
4571
+ font-size: 2.5rem;
4572
+ font-weight: 700;
4573
+ color: white;
4574
+ }
4575
+ .cms-seo-score-label {
4576
+ font-size: 1.25rem;
4577
+ font-weight: 600;
4578
+ color: var(--cms-color-text-primary, #1f2937);
4579
+ }
4580
+ .cms-seo-issues,
4581
+ .cms-seo-suggestions {
4582
+ margin-bottom: 1.5rem;
4583
+ }
4584
+ .cms-seo-issues h3,
4585
+ .cms-seo-suggestions h3,
4586
+ .cms-seo-metrics h3 {
4587
+ margin: 0 0 1rem 0;
4588
+ font-size: 1rem;
4589
+ font-weight: 600;
4590
+ color: var(--cms-color-text-primary, #1f2937);
4591
+ }
4592
+ .cms-seo-issue,
4593
+ .cms-seo-suggestion {
4594
+ display: flex;
4595
+ gap: 0.75rem;
4596
+ padding: 1rem;
4597
+ background: var(--cms-color-surface, #f9fafb);
4598
+ border-radius: 6px;
4599
+ margin-bottom: 0.5rem;
4600
+ }
4601
+ .cms-seo-issue-error {
4602
+ background: var(--cms-color-error-light, #fee2e2);
4603
+ border-left: 3px solid var(--cms-color-error, #ef4444);
4604
+ }
4605
+ .cms-seo-issue-warning {
4606
+ background: var(--cms-color-warning-light, #fef3c7);
4607
+ border-left: 3px solid var(--cms-color-warning, #f59e0b);
4608
+ }
4609
+ .cms-seo-issue-icon,
4610
+ .cms-seo-suggestion-icon {
4611
+ font-size: 1.25rem;
4612
+ flex-shrink: 0;
4613
+ }
4614
+ .cms-seo-issue-message,
4615
+ .cms-seo-suggestion-message {
4616
+ font-size: 0.875rem;
4617
+ font-weight: 500;
4618
+ color: var(--cms-color-text-primary, #1f2937);
4619
+ margin-bottom: 0.25rem;
4620
+ }
4621
+ .cms-seo-issue-meta,
4622
+ .cms-seo-suggestion-meta {
4623
+ font-size: 0.75rem;
4624
+ color: var(--cms-color-text-tertiary, #9ca3af);
4625
+ text-transform: capitalize;
4626
+ }
4627
+ .cms-seo-metrics-grid {
4628
+ display: grid;
4629
+ grid-template-columns: repeat(3, 1fr);
4630
+ gap: 1rem;
4631
+ }
4632
+ .cms-seo-metric {
4633
+ padding: 1rem;
4634
+ background: var(--cms-color-surface, #f9fafb);
4635
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4636
+ border-radius: 8px;
4637
+ text-align: center;
4638
+ }
4639
+ .cms-seo-metric-value {
4640
+ font-size: 1.5rem;
4641
+ font-weight: 700;
4642
+ color: var(--cms-color-primary, #667eea);
4643
+ margin-bottom: 0.25rem;
4644
+ }
4645
+ .cms-seo-metric-label {
4646
+ font-size: 0.75rem;
4647
+ color: var(--cms-color-text-secondary, #6b7280);
4648
+ text-transform: uppercase;
4649
+ letter-spacing: 0.5px;
4650
+ }
4651
+ .cms-seo-footer {
4652
+ display: flex;
4653
+ justify-content: flex-end;
4654
+ gap: 0.75rem;
4655
+ padding: 1.5rem;
4656
+ border-top: 1px solid var(--cms-color-border, #e5e7eb);
4657
+ background: var(--cms-color-surface, #f9fafb);
4658
+ }
4659
+ .cms-btn-secondary,
4660
+ .cms-btn-primary {
4661
+ padding: 0.75rem 1.5rem;
4662
+ border: none;
4663
+ border-radius: 6px;
4664
+ font-size: 0.875rem;
4665
+ font-weight: 600;
4666
+ cursor: pointer;
4667
+ transition: all 0.2s;
4668
+ }
4669
+ .cms-btn-secondary {
4670
+ background: var(--cms-color-surface, #f3f4f6);
4671
+ color: var(--cms-color-text-primary, #1f2937);
4672
+ border: 1px solid var(--cms-color-border, #e5e7eb);
4673
+ }
4674
+ .cms-btn-secondary:hover {
4675
+ background: var(--cms-color-surface-hover, #e5e7eb);
4676
+ }
4677
+ .cms-btn-primary {
4678
+ background: var(--cms-color-primary, #667eea);
4679
+ color: white;
4680
+ }
4681
+ .cms-btn-primary:hover {
4682
+ background: var(--cms-color-primary-hover, #5568d3);
4683
+ transform: translateY(-1px);
4684
+ }
4685
+ @media (max-width: 768px) {
4686
+ .cms-seo-content {
4687
+ width: 100vw;
4688
+ max-height: 100vh;
4689
+ border-radius: 0;
4690
+ }
4691
+ .cms-seo-metrics-grid {
4692
+ grid-template-columns: repeat(2, 1fr);
4693
+ }
4694
+ .cms-seo-tabs button {
4695
+ font-size: 0.75rem;
4696
+ padding: 0.75rem 0.5rem;
4697
+ }
4698
+ }
3524
4699
  /*# sourceMappingURL=index.css.map */