@@ -615,6 +615,217 @@ class Sabberworm\CSS\CSSList\Document#4 (2) {
615
615
#header {margin : 10px 2em 1cm 2% ;font-family : Verdana ,Helvetica ," Gill Sans" ,sans-serif ;color : red !important ;}
616
616
```
617
617
618
+ ## Class diagram
619
+
620
+ ``` mermaid
621
+ classDiagram
622
+ direction LR
623
+
624
+ %% top namespace
625
+
626
+ class OutputFormat {
627
+ }
628
+
629
+ class OutputFormatter {
630
+ }
631
+
632
+ OutputFormatter --> "1" OutputFormat : oFormat
633
+ OutputFormat --> "1" OutputFormatter : oFormatter
634
+ OutputFormat --> "1" OutputFormat : oNextLevelFormat
635
+
636
+ class Parser {
637
+ }
638
+
639
+ class ParserState {
640
+ }
641
+
642
+ Parser --> "1" ParserState : oParserState
643
+
644
+ class Renderable {
645
+ <<interface>>
646
+ }
647
+
648
+ class Settings {
649
+ }
650
+
651
+
652
+ %% namespace Comment
653
+
654
+ class Comment {
655
+ }
656
+ class Commentable {
657
+ <<interface>>
658
+ }
659
+
660
+ Comment ..|> Renderable
661
+
662
+
663
+ %% namespace CSSList
664
+
665
+ class AtRuleBlockList {
666
+ }
667
+ class CSSBlockList {
668
+ <<abstruct>>
669
+ }
670
+ class CSSList {
671
+ <<abstruct>>
672
+ }
673
+ class Document {
674
+ }
675
+ class KeyFrame {
676
+ }
677
+
678
+ AtRuleBlockList --|> CSSBlockList
679
+ AtRuleBlockList ..|> AtRule
680
+ CSSBlockList --|> CSSList
681
+ CSSList ..|> Renderable
682
+ CSSList ..|> Commentable
683
+ Document --|> CSSBlockList
684
+ KeyFrame --|> CSSList
685
+ KeyFrame ..|> AtRule
686
+
687
+ CSSList --> "*" Comment : aComments
688
+ CSSList --> "*" RuleSet : aContents
689
+ CSSList --> "*" CSSList : aContents
690
+ CSSList --> "*" Import : aContents
691
+ CSSList --> "*" Charset : aContents
692
+
693
+ %% namespace Parsing
694
+
695
+ class Anchor {
696
+ }
697
+ class OutputException {
698
+ }
699
+ class ParserState {
700
+ }
701
+ class SourceException {
702
+ }
703
+ class UnexpectedEOFException {
704
+ }
705
+ class UnexpectedTokenException {
706
+ }
707
+
708
+ OutputException --|> SourceException
709
+ UnexpectedEOFException --|> UnexpectedTokenException
710
+ UnexpectedTokenException --|> SourceException
711
+
712
+ Anchor --> "1" ParserState : oParserState
713
+ ParserState --> "1" Settings : oParserSettings
714
+
715
+ %% namespace Property
716
+
717
+ class AtRule {
718
+ <<interface>>
719
+ }
720
+ class Charset {
721
+ }
722
+ class CSSNamespace {
723
+ }
724
+ class Import {
725
+ }
726
+ class KeyframeSelector {
727
+ }
728
+ class Selector {
729
+ }
730
+
731
+ AtRule --|> Renderable
732
+ AtRule --|> Commentable
733
+ Charset ..|> AtRule
734
+ CSSNamespace ..|> AtRule
735
+ Import ..|> AtRule
736
+ KeyframeSelector --|> Selector
737
+
738
+ Charset --> "1" CSSString : oCharset
739
+ Charset --> "*" Comment : aComments
740
+ CSSNamespace --> "*" Comment : aComments
741
+ Import --> "*" Comment : aComments
742
+
743
+
744
+ %% namespace Rule
745
+
746
+ class Rule {
747
+ }
748
+
749
+ Rule ..|> Renderable
750
+ Rule ..|> Commentable
751
+
752
+ Rule --> "1" RuleValueList : mValue
753
+ Rule --> "*" Comment : aComments
754
+
755
+
756
+ %% namespace RuleSet
757
+
758
+ class AtRuleSet {
759
+ }
760
+ class DeclarationBlock {
761
+ }
762
+ class RuleSet {
763
+ <<abstruct>>
764
+ }
765
+
766
+ AtRuleSet --|> RuleSet
767
+ AtRuleSet ..|> AtRule
768
+ DeclarationBlock --|> RuleSet
769
+ RuleSet ..|> Renderable
770
+ RuleSet ..|> Commentable
771
+
772
+ DeclarationBlock --> "*" Selector : aSelectors
773
+ RuleSet --> "*" Rule : aRules
774
+ RuleSet --> "*" Comment : aComments
775
+
776
+
777
+ %% namespace Value
778
+
779
+ class CalcFunction {
780
+ }
781
+ class CalcRuleValueList {
782
+ }
783
+ class Color {
784
+ }
785
+ class CSSFunction {
786
+ }
787
+ class CSSString {
788
+ }
789
+ class LineName {
790
+ }
791
+ class PrimitiveValue {
792
+ <<abstruct>>
793
+ }
794
+ class RuleValueList {
795
+ }
796
+ class Size {
797
+ }
798
+ class URL {
799
+ }
800
+ class Value {
801
+ <<abstruct>>
802
+ }
803
+ class ValueList {
804
+ <<abstruct>>
805
+ }
806
+
807
+ CalcFunction --|> CSSFunction
808
+ CalcRuleValueList --|> RuleValueList
809
+ Color --|> CSSFunction
810
+ CSSFunction --|> ValueList
811
+ CSSString --|> PrimitiveValue
812
+ LineName --|> ValueList
813
+ PrimitiveValue --|> Value
814
+ RuleValueList --|> ValueList
815
+ Size --|> PrimitiveValue
816
+ URL --|> PrimitiveValue
817
+ Value ..|> Renderable
818
+ ValueList --|> Value
819
+
820
+ URL --> "1" CSSString : oURL
821
+ ValueList --> "*" RuleValueList : aComponents
822
+ ValueList --> "*" CSSFunction : aComponents
823
+ ValueList --> "*" CSSString : aComponents
824
+ ValueList --> "*" LineName : aComponents
825
+ ValueList --> "*" Size : aComponents
826
+ ValueList --> "*" URL : aComponents
827
+ ```
828
+
618
829
## Contributors/Thanks to
619
830
620
831
* [ oliverklee] ( https://github.com/oliverklee ) for lots of refactorings, code modernizations and CI integrations
0 commit comments