) {
30 | // Called when the user discards a scene session.
31 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
32 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
33 | }
34 |
35 |
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## Build generated
6 | build/
7 | DerivedData/
8 |
9 | ## Various settings
10 | *.pbxuser
11 | !default.pbxuser
12 | *.mode1v3
13 | !default.mode1v3
14 | *.mode2v3
15 | !default.mode2v3
16 | *.perspectivev3
17 | !default.perspectivev3
18 | xcuserdata/
19 |
20 | ## Other
21 | *.moved-aside
22 | *.xccheckout
23 | *.xcscmblueprint
24 |
25 | ## Obj-C/Swift specific
26 | *.hmap
27 | *.ipa
28 | *.dSYM.zip
29 | *.dSYM
30 |
31 | ## Playgrounds
32 | timeline.xctimeline
33 | playground.xcworkspace
34 |
35 | # Swift Package Manager
36 | #
37 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
38 | # Packages/
39 | # Package.pins
40 | # Package.resolved
41 | .build/
42 |
43 | # CocoaPods
44 | #
45 | # We recommend against adding the Pods directory to your .gitignore. However
46 | # you should judge for yourself, the pros and cons are mentioned at:
47 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
48 | #
49 | # Pods/
50 |
51 | # Carthage
52 | #
53 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
54 | # Carthage/Checkouts
55 |
56 | Carthage/Build
57 |
58 | # fastlane
59 | #
60 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
61 | # screenshots whenever they are needed.
62 | # For more information about the recommended setup visit:
63 | # https://docs.fastlane.tools/best-practices/source-control/#source-control
64 |
65 | fastlane/report.xml
66 | fastlane/Preview.html
67 | fastlane/screenshots/**/*.png
68 | fastlane/test_output
69 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UIApplicationSceneManifest
24 |
25 | UIApplicationSupportsMultipleScenes
26 |
27 | UISceneConfigurations
28 |
29 | UIWindowSceneSessionRoleApplication
30 |
31 |
32 | UISceneConfigurationName
33 | Default Configuration
34 | UISceneDelegateClassName
35 | $(PRODUCT_MODULE_NAME).SceneDelegate
36 |
37 |
38 |
39 |
40 | UILaunchStoryboardName
41 | LaunchScreen
42 | UIRequiredDeviceCapabilities
43 |
44 | armv7
45 |
46 | UISupportedInterfaceOrientations
47 |
48 | UIInterfaceOrientationPortrait
49 |
50 | UISupportedInterfaceOrientations~ipad
51 |
52 | UIInterfaceOrientationPortrait
53 | UIInterfaceOrientationPortraitUpsideDown
54 | UIInterfaceOrientationLandscapeLeft
55 | UIInterfaceOrientationLandscapeRight
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // SwiftUI-CSS_example
4 | //
5 | // Created by liang on 2019/8/10.
6 | // Copyright © 2019 liang. All rights reserved.
7 | //
8 |
9 | import SwiftUI
10 | import SwiftUI_CSS
11 |
12 | // responsive
13 |
14 | let responsive = Responsive(UIScreen.main.bounds.size.width / 375)
15 |
16 | // color
17 | let NormalDescColor = Color(red: 0x77/0xff, green: 0x77/0xff, blue: 0x77/0xff)
18 | let PrimaryLabelColor = Color(red: 0x33/0xff, green: 0x33/0xff, blue: 0x33/0xff)
19 |
20 | let SourceCodeColor = Color.blue
21 | // the definition of class name variable
22 | let languageLogo_clsName = CSSStyle([
23 | .width(responsive.r(100)),
24 | .height(responsive.r(100)),
25 | .cornerRadius(responsive.r(10)),
26 | .paddingTLBT(responsive.r(10), 0, responsive.r(15),0)
27 | ])
28 |
29 | let languageTitle_clsName = CSSStyle([
30 | .font(.headline),
31 | .foregroundColor(Color(red: 0x33/0xff, green: 0x33/0xff, blue: 0x33/0xff)),
32 | .paddingEdges([.bottom], responsive.r(10))
33 | ])
34 |
35 | let languageDesc_clsName = CSSStyle([
36 | .font(.footnote),
37 | .paddingHorizontal(responsive.r(10)),
38 | .foregroundColor(NormalDescColor),
39 | .lineSpacing(2),
40 | .flexHeight(min: responsive.r(100), max: .infinity)
41 | ])
42 |
43 | let wikiDesc_clsName = CSSStyle([
44 | .font(Font.system(size: responsive.r(12))),
45 | .foregroundColor(NormalDescColor)
46 | ])
47 |
48 | struct ContentView: View {
49 | var body: some View {
50 | ScrollView(.vertical) {
51 | Text("The history of languages")
52 | .setStyle([
53 | .font(.title),
54 | .height(responsive.r(40))
55 | ])
56 | HTML5()
57 |
58 | Swift()
59 | }
60 | }
61 | }
62 |
63 | #if DEBUG
64 | struct ContentView_Previews: PreviewProvider {
65 | static var previews: some View {
66 | Group {
67 | ContentView()
68 | ContentView()
69 | }
70 | }
71 | }
72 | #endif
73 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/SceneDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SceneDelegate.swift
3 | // SwiftUI-CSS_example
4 | //
5 | // Created by liang on 2019/8/10.
6 | // Copyright © 2019 liang. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import SwiftUI
11 |
12 | class SceneDelegate: UIResponder, UIWindowSceneDelegate {
13 |
14 | var window: UIWindow?
15 |
16 |
17 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
18 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
19 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
20 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
21 |
22 | // Use a UIHostingController as window root view controller
23 | if let windowScene = scene as? UIWindowScene {
24 | let window = UIWindow(windowScene: windowScene)
25 | window.rootViewController = UIHostingController(rootView: ContentView())
26 | self.window = window
27 | window.makeKeyAndVisible()
28 | }
29 | }
30 |
31 | func sceneDidDisconnect(_ scene: UIScene) {
32 | // Called as the scene is being released by the system.
33 | // This occurs shortly after the scene enters the background, or when its session is discarded.
34 | // Release any resources associated with this scene that can be re-created the next time the scene connects.
35 | // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).
36 | }
37 |
38 | func sceneDidBecomeActive(_ scene: UIScene) {
39 | // Called when the scene has moved from an inactive state to an active state.
40 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
41 | }
42 |
43 | func sceneWillResignActive(_ scene: UIScene) {
44 | // Called when the scene will move from an active state to an inactive state.
45 | // This may occur due to temporary interruptions (ex. an incoming phone call).
46 | }
47 |
48 | func sceneWillEnterForeground(_ scene: UIScene) {
49 | // Called as the scene transitions from the background to the foreground.
50 | // Use this method to undo the changes made on entering the background.
51 | }
52 |
53 | func sceneDidEnterBackground(_ scene: UIScene) {
54 | // Called as the scene transitions from the foreground to the background.
55 | // Use this method to save data, release shared resources, and store enough scene-specific state information
56 | // to restore the scene back to its current state.
57 | }
58 |
59 |
60 | }
61 |
62 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/LanguageDifference/HTML5.swift:
--------------------------------------------------------------------------------
1 | //
2 | // HTML5.swift
3 | // SwiftUI-CSS_example
4 | //
5 | // Created by liang on 2019/8/11.
6 | // Copyright © 2019 liang. All rights reserved.
7 | //
8 |
9 | import SwiftUI
10 | import SwiftUI_CSS
11 |
12 | let sourceCodeContainer_clsName = CSSStyle([
13 | .padding(10),
14 | .backgroundColor(Color.init(red: 0xee/0xff, green: 0xee/0xff, blue: 0xee/0xff))
15 | ])
16 |
17 | let sourceCode_clsName = CSSStyle([
18 | .foregroundColor(SourceCodeColor),
19 | .font(Font.system(size: 12))
20 | ])
21 | struct HTML5: View {
22 | var body: some View {
23 | VStack {
24 | Image("image-html5")
25 | .resizable()
26 | .scaledToFit()
27 | .addClassName(languageLogo_clsName)
28 |
29 | Text("HTML5")
30 | .addClassName(languageTitle_clsName)
31 |
32 | Text("HTML 5 (formerly and commonly spelled HTML5[a]) is a software solution stack that defines the properties and behaviors of web page content by implementing a markup based pattern to it.")
33 | .addClassName(languageDesc_clsName)
34 |
35 | HStack {
36 | Text("Code Sample:")
37 | .font(.caption)
38 |
39 | Spacer()
40 | }.padding([.horizontal], 10)
41 |
42 | HStack {
43 | Text("""
44 | At Mozilla, we’re a global community of
45 |
46 |
47 | - technologists
48 | - thinkers
49 | - builders
50 |
51 |
52 | working together ...
53 | """)
54 | .addClassName(sourceCode_clsName)
55 |
56 | Spacer()
57 | }
58 | .addClassName(sourceCodeContainer_clsName)
59 |
60 | VStack {
61 | Divider()
62 | HStack() {
63 | Text("Developed by:")
64 | .font(Font.system(size: 14))
65 |
66 | Button(action: {
67 |
68 | }) {
69 | Text("WHATWG")
70 | .font(Font.system(size: 12))
71 | }
72 |
73 | Spacer()
74 | }.padding([.top], 5)
75 | HStack() {
76 | Text("Initial release:")
77 | .font(Font.system(size: 14))
78 |
79 | Text("28 October 2014")
80 | .addClassName(wikiDesc_clsName)
81 |
82 | Spacer()
83 | }.padding([.top], 5)
84 | }.padding(EdgeInsets(top: 2, leading: 10, bottom: 10, trailing: 10))
85 |
86 | }
87 | }
88 | }
89 |
90 | #if DEBUG
91 | struct HTML5_Previews: PreviewProvider {
92 | static var previews: some View {
93 | HTML5()
94 | }
95 | }
96 | #endif
97 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example.xcodeproj/xcshareddata/xcschemes/SwiftUI-CSS_example.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
43 |
45 |
51 |
52 |
53 |
54 |
60 |
62 |
68 |
69 |
70 |
71 |
73 |
74 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example/LanguageDifference/Swift.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Swift.swift
3 | // SwiftUI-CSS_example
4 | //
5 | // Created by liang on 2019/8/11.
6 | // Copyright © 2019 liang. All rights reserved.
7 | //
8 |
9 | import SwiftUI
10 | import SwiftUI_CSS
11 |
12 | let wikiRow_clsName = CSSStyle([
13 | .paddingEdges([.top], 5),
14 | .flexHeight(min: 40, max: .infinity)
15 | ])
16 |
17 | struct Swift: View {
18 | var body: some View {
19 | VStack {
20 | Image("image-swift")
21 | .resizable()
22 | .scaledToFit()
23 | .addClassName(languageLogo_clsName)
24 |
25 | Text("Swift")
26 | .addClassName(languageTitle_clsName)
27 |
28 |
29 | Text("Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, Linux, and z/OS. ")
30 | .addClassName(languageDesc_clsName)
31 |
32 | List() {
33 | Section(header: Text("Version history")) {
34 |
35 | HStack {
36 | Text("Date").font(.subheadline)
37 | Spacer()
38 | Text("Version").font(.subheadline)
39 | }
40 | Group {
41 | HStack {
42 | Text("September 9, 2014")
43 | Spacer()
44 | Text("Swift 1.0")
45 | }
46 | HStack {
47 | Text("October 22, 2014")
48 | Spacer()
49 | Text("Swift 1.1")
50 | }
51 | HStack {
52 | Text("April 8, 2015")
53 | Spacer()
54 | Text("Swift 1.2")
55 | }
56 | HStack {
57 | Text("September 21, 2015")
58 | Spacer()
59 | Text("Swift 2.0")
60 | }
61 | HStack {
62 | Text("September 13, 2016")
63 | Spacer()
64 | Text("Swift 3.0")
65 | }
66 | HStack {
67 | Text("September 19, 2017")
68 | Spacer()
69 | Text("Swift 4.0")
70 | }
71 | HStack {
72 | Text("September 17, 2018")
73 | Spacer()
74 | Text("Swift 4.2")
75 | }
76 | HStack {
77 | Text("March 25, 2019 ")
78 | Spacer()
79 | Text("Swift 5.0")
80 | }
81 | }.font(.body)
82 | .foregroundColor(NormalDescColor)
83 | }
84 | }.listStyle(GroupedListStyle())
85 | .frame(height: 200)
86 |
87 | VStack {
88 | Divider()
89 | HStack(alignment: .top) {
90 | Text("Designed by:")
91 | .font(Font.system(size: 14))
92 |
93 | Button(action: {
94 |
95 | }) {
96 | Text("Chris Lattner, Doug Gregor, John McCall, Ted Kremenek, Joe Groff, and Apple Inc.")
97 | .addClassName(wikiDesc_clsName)
98 | }
99 |
100 | Spacer()
101 | }.addClassName(wikiRow_clsName)
102 |
103 | HStack(alignment: .top) {
104 | Text("Influenced by:")
105 | .font(Font.system(size: 14))
106 |
107 | Text("Objective-C,[7] Rust, Haskell, Ruby, Python, C#, CLU,[8] D[9]")
108 | .addClassName(wikiDesc_clsName)
109 |
110 | Spacer()
111 | }.addClassName(wikiRow_clsName)
112 | }.padding(EdgeInsets(top: 2, leading: 10, bottom: 10, trailing: 10))
113 |
114 | }
115 | }
116 | }
117 |
118 | #if DEBUG
119 | struct Swift_Previews: PreviewProvider {
120 | static var previews: some View {
121 | Swift()
122 | }
123 | }
124 | #endif
125 |
--------------------------------------------------------------------------------
/SwiftUI-CSS_example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 52;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 4829A71D22FF1B7E00C69BBB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4829A71C22FF1B7E00C69BBB /* AppDelegate.swift */; };
11 | 4829A71F22FF1B7E00C69BBB /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4829A71E22FF1B7E00C69BBB /* SceneDelegate.swift */; };
12 | 4829A72122FF1B7E00C69BBB /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4829A72022FF1B7E00C69BBB /* ContentView.swift */; };
13 | 4829A72322FF1B8100C69BBB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4829A72222FF1B8100C69BBB /* Assets.xcassets */; };
14 | 4829A72622FF1B8100C69BBB /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4829A72522FF1B8100C69BBB /* Preview Assets.xcassets */; };
15 | 4829A72922FF1B8100C69BBB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4829A72722FF1B8100C69BBB /* LaunchScreen.storyboard */; };
16 | 4829A73722FFFF6A00C69BBB /* HTML5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4829A73622FFFF6A00C69BBB /* HTML5.swift */; };
17 | 4829A7392300559600C69BBB /* Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4829A7382300559600C69BBB /* Swift.swift */; };
18 | 486B05AF233249350069CC9D /* SwiftUI_CSS in Frameworks */ = {isa = PBXBuildFile; productRef = 486B05AE233249350069CC9D /* SwiftUI_CSS */; };
19 | /* End PBXBuildFile section */
20 |
21 | /* Begin PBXFileReference section */
22 | 4829A71922FF1B7E00C69BBB /* SwiftUI-CSS_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SwiftUI-CSS_example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
23 | 4829A71C22FF1B7E00C69BBB /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
24 | 4829A71E22FF1B7E00C69BBB /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; };
25 | 4829A72022FF1B7E00C69BBB /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
26 | 4829A72222FF1B8100C69BBB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
27 | 4829A72522FF1B8100C69BBB /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
28 | 4829A72822FF1B8100C69BBB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
29 | 4829A72A22FF1B8100C69BBB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
30 | 4829A73622FFFF6A00C69BBB /* HTML5.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTML5.swift; sourceTree = ""; };
31 | 4829A7382300559600C69BBB /* Swift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Swift.swift; sourceTree = ""; };
32 | /* End PBXFileReference section */
33 |
34 | /* Begin PBXFrameworksBuildPhase section */
35 | 4829A71622FF1B7E00C69BBB /* Frameworks */ = {
36 | isa = PBXFrameworksBuildPhase;
37 | buildActionMask = 2147483647;
38 | files = (
39 | 486B05AF233249350069CC9D /* SwiftUI_CSS in Frameworks */,
40 | );
41 | runOnlyForDeploymentPostprocessing = 0;
42 | };
43 | /* End PBXFrameworksBuildPhase section */
44 |
45 | /* Begin PBXGroup section */
46 | 4829A71022FF1B7E00C69BBB = {
47 | isa = PBXGroup;
48 | children = (
49 | 4829A71B22FF1B7E00C69BBB /* SwiftUI-CSS_example */,
50 | 4829A71A22FF1B7E00C69BBB /* Products */,
51 | );
52 | sourceTree = "";
53 | };
54 | 4829A71A22FF1B7E00C69BBB /* Products */ = {
55 | isa = PBXGroup;
56 | children = (
57 | 4829A71922FF1B7E00C69BBB /* SwiftUI-CSS_example.app */,
58 | );
59 | name = Products;
60 | sourceTree = "";
61 | };
62 | 4829A71B22FF1B7E00C69BBB /* SwiftUI-CSS_example */ = {
63 | isa = PBXGroup;
64 | children = (
65 | 4829A71C22FF1B7E00C69BBB /* AppDelegate.swift */,
66 | 4829A71E22FF1B7E00C69BBB /* SceneDelegate.swift */,
67 | 4829A72022FF1B7E00C69BBB /* ContentView.swift */,
68 | 4829A73522FFFEF600C69BBB /* LanguageDifference */,
69 | 4829A72222FF1B8100C69BBB /* Assets.xcassets */,
70 | 4829A72722FF1B8100C69BBB /* LaunchScreen.storyboard */,
71 | 4829A72A22FF1B8100C69BBB /* Info.plist */,
72 | 4829A72422FF1B8100C69BBB /* Preview Content */,
73 | );
74 | path = "SwiftUI-CSS_example";
75 | sourceTree = "";
76 | };
77 | 4829A72422FF1B8100C69BBB /* Preview Content */ = {
78 | isa = PBXGroup;
79 | children = (
80 | 4829A72522FF1B8100C69BBB /* Preview Assets.xcassets */,
81 | );
82 | path = "Preview Content";
83 | sourceTree = "";
84 | };
85 | 4829A73522FFFEF600C69BBB /* LanguageDifference */ = {
86 | isa = PBXGroup;
87 | children = (
88 | 4829A73622FFFF6A00C69BBB /* HTML5.swift */,
89 | 4829A7382300559600C69BBB /* Swift.swift */,
90 | );
91 | path = LanguageDifference;
92 | sourceTree = "";
93 | };
94 | /* End PBXGroup section */
95 |
96 | /* Begin PBXNativeTarget section */
97 | 4829A71822FF1B7E00C69BBB /* SwiftUI-CSS_example */ = {
98 | isa = PBXNativeTarget;
99 | buildConfigurationList = 4829A72D22FF1B8100C69BBB /* Build configuration list for PBXNativeTarget "SwiftUI-CSS_example" */;
100 | buildPhases = (
101 | 4829A71522FF1B7E00C69BBB /* Sources */,
102 | 4829A71622FF1B7E00C69BBB /* Frameworks */,
103 | 4829A71722FF1B7E00C69BBB /* Resources */,
104 | );
105 | buildRules = (
106 | );
107 | dependencies = (
108 | );
109 | name = "SwiftUI-CSS_example";
110 | packageProductDependencies = (
111 | 486B05AE233249350069CC9D /* SwiftUI_CSS */,
112 | );
113 | productName = "SwiftUI-CSS_example";
114 | productReference = 4829A71922FF1B7E00C69BBB /* SwiftUI-CSS_example.app */;
115 | productType = "com.apple.product-type.application";
116 | };
117 | /* End PBXNativeTarget section */
118 |
119 | /* Begin PBXProject section */
120 | 4829A71122FF1B7E00C69BBB /* Project object */ = {
121 | isa = PBXProject;
122 | attributes = {
123 | LastSwiftUpdateCheck = 1100;
124 | LastUpgradeCheck = 1100;
125 | ORGANIZATIONNAME = liang;
126 | TargetAttributes = {
127 | 4829A71822FF1B7E00C69BBB = {
128 | CreatedOnToolsVersion = 11.0;
129 | };
130 | };
131 | };
132 | buildConfigurationList = 4829A71422FF1B7E00C69BBB /* Build configuration list for PBXProject "SwiftUI-CSS_example" */;
133 | compatibilityVersion = "Xcode 9.3";
134 | developmentRegion = en;
135 | hasScannedForEncodings = 0;
136 | knownRegions = (
137 | en,
138 | Base,
139 | );
140 | mainGroup = 4829A71022FF1B7E00C69BBB;
141 | packageReferences = (
142 | 486B05AD233249350069CC9D /* XCRemoteSwiftPackageReference "SwiftUI-CSS" */,
143 | );
144 | productRefGroup = 4829A71A22FF1B7E00C69BBB /* Products */;
145 | projectDirPath = "";
146 | projectRoot = "";
147 | targets = (
148 | 4829A71822FF1B7E00C69BBB /* SwiftUI-CSS_example */,
149 | );
150 | };
151 | /* End PBXProject section */
152 |
153 | /* Begin PBXResourcesBuildPhase section */
154 | 4829A71722FF1B7E00C69BBB /* Resources */ = {
155 | isa = PBXResourcesBuildPhase;
156 | buildActionMask = 2147483647;
157 | files = (
158 | 4829A72922FF1B8100C69BBB /* LaunchScreen.storyboard in Resources */,
159 | 4829A72622FF1B8100C69BBB /* Preview Assets.xcassets in Resources */,
160 | 4829A72322FF1B8100C69BBB /* Assets.xcassets in Resources */,
161 | );
162 | runOnlyForDeploymentPostprocessing = 0;
163 | };
164 | /* End PBXResourcesBuildPhase section */
165 |
166 | /* Begin PBXSourcesBuildPhase section */
167 | 4829A71522FF1B7E00C69BBB /* Sources */ = {
168 | isa = PBXSourcesBuildPhase;
169 | buildActionMask = 2147483647;
170 | files = (
171 | 4829A71D22FF1B7E00C69BBB /* AppDelegate.swift in Sources */,
172 | 4829A7392300559600C69BBB /* Swift.swift in Sources */,
173 | 4829A71F22FF1B7E00C69BBB /* SceneDelegate.swift in Sources */,
174 | 4829A72122FF1B7E00C69BBB /* ContentView.swift in Sources */,
175 | 4829A73722FFFF6A00C69BBB /* HTML5.swift in Sources */,
176 | );
177 | runOnlyForDeploymentPostprocessing = 0;
178 | };
179 | /* End PBXSourcesBuildPhase section */
180 |
181 | /* Begin PBXVariantGroup section */
182 | 4829A72722FF1B8100C69BBB /* LaunchScreen.storyboard */ = {
183 | isa = PBXVariantGroup;
184 | children = (
185 | 4829A72822FF1B8100C69BBB /* Base */,
186 | );
187 | name = LaunchScreen.storyboard;
188 | sourceTree = "";
189 | };
190 | /* End PBXVariantGroup section */
191 |
192 | /* Begin XCBuildConfiguration section */
193 | 4829A72B22FF1B8100C69BBB /* Debug */ = {
194 | isa = XCBuildConfiguration;
195 | buildSettings = {
196 | ALWAYS_SEARCH_USER_PATHS = NO;
197 | CLANG_ANALYZER_NONNULL = YES;
198 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
199 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
200 | CLANG_CXX_LIBRARY = "libc++";
201 | CLANG_ENABLE_MODULES = YES;
202 | CLANG_ENABLE_OBJC_ARC = YES;
203 | CLANG_ENABLE_OBJC_WEAK = YES;
204 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
205 | CLANG_WARN_BOOL_CONVERSION = YES;
206 | CLANG_WARN_COMMA = YES;
207 | CLANG_WARN_CONSTANT_CONVERSION = YES;
208 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
209 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
210 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
211 | CLANG_WARN_EMPTY_BODY = YES;
212 | CLANG_WARN_ENUM_CONVERSION = YES;
213 | CLANG_WARN_INFINITE_RECURSION = YES;
214 | CLANG_WARN_INT_CONVERSION = YES;
215 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
216 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
217 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
218 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
219 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
220 | CLANG_WARN_STRICT_PROTOTYPES = YES;
221 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
222 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
223 | CLANG_WARN_UNREACHABLE_CODE = YES;
224 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
225 | COPY_PHASE_STRIP = NO;
226 | DEBUG_INFORMATION_FORMAT = dwarf;
227 | ENABLE_STRICT_OBJC_MSGSEND = YES;
228 | ENABLE_TESTABILITY = YES;
229 | GCC_C_LANGUAGE_STANDARD = gnu11;
230 | GCC_DYNAMIC_NO_PIC = NO;
231 | GCC_NO_COMMON_BLOCKS = YES;
232 | GCC_OPTIMIZATION_LEVEL = 0;
233 | GCC_PREPROCESSOR_DEFINITIONS = (
234 | "DEBUG=1",
235 | "$(inherited)",
236 | );
237 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
238 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
239 | GCC_WARN_UNDECLARED_SELECTOR = YES;
240 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
241 | GCC_WARN_UNUSED_FUNCTION = YES;
242 | GCC_WARN_UNUSED_VARIABLE = YES;
243 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
244 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
245 | MTL_FAST_MATH = YES;
246 | ONLY_ACTIVE_ARCH = YES;
247 | SDKROOT = iphoneos;
248 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
249 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
250 | };
251 | name = Debug;
252 | };
253 | 4829A72C22FF1B8100C69BBB /* Release */ = {
254 | isa = XCBuildConfiguration;
255 | buildSettings = {
256 | ALWAYS_SEARCH_USER_PATHS = NO;
257 | CLANG_ANALYZER_NONNULL = YES;
258 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
259 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
260 | CLANG_CXX_LIBRARY = "libc++";
261 | CLANG_ENABLE_MODULES = YES;
262 | CLANG_ENABLE_OBJC_ARC = YES;
263 | CLANG_ENABLE_OBJC_WEAK = YES;
264 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
265 | CLANG_WARN_BOOL_CONVERSION = YES;
266 | CLANG_WARN_COMMA = YES;
267 | CLANG_WARN_CONSTANT_CONVERSION = YES;
268 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
269 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
270 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
271 | CLANG_WARN_EMPTY_BODY = YES;
272 | CLANG_WARN_ENUM_CONVERSION = YES;
273 | CLANG_WARN_INFINITE_RECURSION = YES;
274 | CLANG_WARN_INT_CONVERSION = YES;
275 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
276 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
277 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
278 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
279 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
280 | CLANG_WARN_STRICT_PROTOTYPES = YES;
281 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
282 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
283 | CLANG_WARN_UNREACHABLE_CODE = YES;
284 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
285 | COPY_PHASE_STRIP = NO;
286 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
287 | ENABLE_NS_ASSERTIONS = NO;
288 | ENABLE_STRICT_OBJC_MSGSEND = YES;
289 | GCC_C_LANGUAGE_STANDARD = gnu11;
290 | GCC_NO_COMMON_BLOCKS = YES;
291 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
292 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
293 | GCC_WARN_UNDECLARED_SELECTOR = YES;
294 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
295 | GCC_WARN_UNUSED_FUNCTION = YES;
296 | GCC_WARN_UNUSED_VARIABLE = YES;
297 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
298 | MTL_ENABLE_DEBUG_INFO = NO;
299 | MTL_FAST_MATH = YES;
300 | SDKROOT = iphoneos;
301 | SWIFT_COMPILATION_MODE = wholemodule;
302 | SWIFT_OPTIMIZATION_LEVEL = "-O";
303 | VALIDATE_PRODUCT = YES;
304 | };
305 | name = Release;
306 | };
307 | 4829A72E22FF1B8100C69BBB /* Debug */ = {
308 | isa = XCBuildConfiguration;
309 | buildSettings = {
310 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
311 | CODE_SIGN_STYLE = Automatic;
312 | DEVELOPMENT_ASSET_PATHS = "SwiftUI-CSS_example/Preview\\ Content";
313 | DEVELOPMENT_TEAM = 5F3P75AV37;
314 | ENABLE_PREVIEWS = YES;
315 | INFOPLIST_FILE = "SwiftUI-CSS_example/Info.plist";
316 | LD_RUNPATH_SEARCH_PATHS = (
317 | "$(inherited)",
318 | "@executable_path/Frameworks",
319 | );
320 | PRODUCT_BUNDLE_IDENTIFIER = "me.hite.app.SwiftUI-CSS-example";
321 | PRODUCT_NAME = "$(TARGET_NAME)";
322 | SWIFT_VERSION = 5.0;
323 | TARGETED_DEVICE_FAMILY = 1;
324 | };
325 | name = Debug;
326 | };
327 | 4829A72F22FF1B8100C69BBB /* Release */ = {
328 | isa = XCBuildConfiguration;
329 | buildSettings = {
330 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
331 | CODE_SIGN_STYLE = Automatic;
332 | DEVELOPMENT_ASSET_PATHS = "SwiftUI-CSS_example/Preview\\ Content";
333 | DEVELOPMENT_TEAM = 5F3P75AV37;
334 | ENABLE_PREVIEWS = YES;
335 | INFOPLIST_FILE = "SwiftUI-CSS_example/Info.plist";
336 | LD_RUNPATH_SEARCH_PATHS = (
337 | "$(inherited)",
338 | "@executable_path/Frameworks",
339 | );
340 | PRODUCT_BUNDLE_IDENTIFIER = "me.hite.app.SwiftUI-CSS-example";
341 | PRODUCT_NAME = "$(TARGET_NAME)";
342 | SWIFT_VERSION = 5.0;
343 | TARGETED_DEVICE_FAMILY = 1;
344 | };
345 | name = Release;
346 | };
347 | /* End XCBuildConfiguration section */
348 |
349 | /* Begin XCConfigurationList section */
350 | 4829A71422FF1B7E00C69BBB /* Build configuration list for PBXProject "SwiftUI-CSS_example" */ = {
351 | isa = XCConfigurationList;
352 | buildConfigurations = (
353 | 4829A72B22FF1B8100C69BBB /* Debug */,
354 | 4829A72C22FF1B8100C69BBB /* Release */,
355 | );
356 | defaultConfigurationIsVisible = 0;
357 | defaultConfigurationName = Release;
358 | };
359 | 4829A72D22FF1B8100C69BBB /* Build configuration list for PBXNativeTarget "SwiftUI-CSS_example" */ = {
360 | isa = XCConfigurationList;
361 | buildConfigurations = (
362 | 4829A72E22FF1B8100C69BBB /* Debug */,
363 | 4829A72F22FF1B8100C69BBB /* Release */,
364 | );
365 | defaultConfigurationIsVisible = 0;
366 | defaultConfigurationName = Release;
367 | };
368 | /* End XCConfigurationList section */
369 |
370 | /* Begin XCRemoteSwiftPackageReference section */
371 | 486B05AD233249350069CC9D /* XCRemoteSwiftPackageReference "SwiftUI-CSS" */ = {
372 | isa = XCRemoteSwiftPackageReference;
373 | repositoryURL = "https://github.com/hite/SwiftUI-CSS";
374 | requirement = {
375 | kind = upToNextMajorVersion;
376 | minimumVersion = 1.1.0;
377 | };
378 | };
379 | /* End XCRemoteSwiftPackageReference section */
380 |
381 | /* Begin XCSwiftPackageProductDependency section */
382 | 486B05AE233249350069CC9D /* SwiftUI_CSS */ = {
383 | isa = XCSwiftPackageProductDependency;
384 | package = 486B05AD233249350069CC9D /* XCRemoteSwiftPackageReference "SwiftUI-CSS" */;
385 | productName = SwiftUI_CSS;
386 | };
387 | /* End XCSwiftPackageProductDependency section */
388 | };
389 | rootObject = 4829A71122FF1B7E00C69BBB /* Project object */;
390 | }
391 |
--------------------------------------------------------------------------------