diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..186ccc4 Binary files /dev/null and b/.DS_Store differ diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..520a00b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +**/target +**/dist +LICENSES +LICENSE +temp +README.md diff --git a/.gitignore b/.gitignore index 80aab8e..74663b5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ # These are backup files generated by rustfmt **/*.rs.bk + +/node_modules diff --git a/Cargo.lock b/Cargo.lock index e906b8f..b18374f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" @@ -57,9 +57,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -69,9 +69,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3" dependencies = [ "async-lock", "cfg-if", @@ -80,7 +80,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 0.38.44", + "rustix", "slab", "tracing", "windows-sys 0.59.0", @@ -99,9 +99,9 @@ dependencies = [ [[package]] name = "async-process" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" dependencies = [ "async-channel", "async-io", @@ -112,7 +112,7 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix 0.38.44", + "rustix", "tracing", ] @@ -124,14 +124,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "async-signal" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d" dependencies = [ "async-io", "async-lock", @@ -139,7 +139,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.44", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -159,7 +159,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -193,9 +193,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" @@ -268,9 +268,9 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", @@ -281,9 +281,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -324,9 +324,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.23" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "shlex", ] @@ -360,9 +360,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "ciborium" @@ -409,14 +409,14 @@ dependencies = [ [[package]] name = "cocoa" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" +checksum = "ad36507aeb7e16159dfe68db81ccc27571c3ccd4b76fb2fb72fc59e7a4b1b64c" dependencies = [ "bitflags 2.9.1", "block", - "cocoa-foundation 0.2.0", - "core-foundation 0.10.0", + "cocoa-foundation 0.2.1", + "core-foundation 0.10.1", "core-graphics 0.24.0", "foreign-types", "libc", @@ -439,15 +439,14 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" +checksum = "81411967c50ee9a1fc11365f8c585f863a22a9697c89239c452292c40ba79b0d" dependencies = [ "bitflags 2.9.1", "block", - "core-foundation 0.10.0", + "core-foundation 0.10.1", "core-graphics-types 0.2.0", - "libc", "objc", ] @@ -498,7 +497,7 @@ checksum = "04382d0d9df7434af6b1b49ea1a026ef39df1b0738b1cc373368cf175354f6eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -548,9 +547,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -582,7 +581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ "bitflags 2.9.1", - "core-foundation 0.10.0", + "core-foundation 0.10.1", "core-graphics-types 0.2.0", "foreign-types", "libc", @@ -606,7 +605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ "bitflags 2.9.1", - "core-foundation 0.10.0", + "core-foundation 0.10.1", "libc", ] @@ -645,9 +644,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" @@ -683,7 +682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -706,7 +705,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -717,7 +716,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -760,7 +759,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -850,7 +849,7 @@ dependencies = [ "dioxus-rsx", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1044,7 +1043,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1137,7 +1136,7 @@ dependencies = [ "proc-macro2", "quote", "slab", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1149,7 +1148,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1210,7 +1209,7 @@ dependencies = [ "proc-macro2", "quote", "server_fn_macro", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1231,7 +1230,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1258,7 +1257,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1275,13 +1274,13 @@ dependencies = [ [[package]] name = "dlopen2_derive" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" +checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1326,9 +1325,9 @@ checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ "enumflags2_derive", "serde", @@ -1336,34 +1335,34 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "enumset" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a6b7c3d347de0a9f7bfd2f853be43fe32fa6fac30c70f6d6d67a1e936b87ee" +checksum = "d6ee17054f550fd7400e1906e2f9356c7672643ed34008a9e8abe147ccd2d821" dependencies = [ "enumset_derive", ] [[package]] name = "enumset_derive" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da3ea9e1d1a3b1593e15781f930120e72aa7501610b2f82e5b6739c72e8eac5" +checksum = "76d07902c93376f1e96c34abc4d507c0911df3816cef50b01f5a2ff3ad8c370d" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1374,12 +1373,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1440,9 +1439,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -1472,7 +1471,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1569,7 +1568,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1749,7 +1748,7 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] @@ -1836,7 +1835,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1960,7 +1959,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1987,9 +1986,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] name = "heck" @@ -2005,9 +2004,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2099,17 +2098,21 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -2166,9 +2169,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", @@ -2182,9 +2185,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -2242,12 +2245,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.15.4", ] [[package]] @@ -2268,12 +2271,33 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "itoa" version = "0.4.8" @@ -2403,9 +2427,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libloading" @@ -2419,9 +2443,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", @@ -2446,12 +2470,6 @@ dependencies = [ "x11", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.9.4" @@ -2466,9 +2484,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -2534,7 +2552,7 @@ dependencies = [ "manganis-core", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -2559,9 +2577,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memoffset" @@ -2590,9 +2608,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -2600,13 +2618,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -2712,23 +2730,24 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -2987,9 +3006,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -2997,9 +3016,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -3142,7 +3161,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3189,15 +3208,15 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.4" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 0.38.44", + "rustix", "tracing", "windows-sys 0.59.0", ] @@ -3299,7 +3318,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "version_check", ] @@ -3314,9 +3333,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -3413,9 +3432,9 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags 2.9.1", ] @@ -3462,9 +3481,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64", "bytes", @@ -3475,12 +3494,9 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "ipnet", "js-sys", "log", - "mime", "mime_guess", - "once_cell", "percent-encoding", "pin-project-lite", "serde", @@ -3490,13 +3506,13 @@ dependencies = [ "tokio", "tokio-util", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "windows-registry", ] [[package]] @@ -3524,9 +3540,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc-hash" @@ -3543,19 +3559,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.1", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.0.7" @@ -3565,15 +3568,15 @@ dependencies = [ "bitflags 2.9.1", "errno", "libc", - "linux-raw-sys 0.9.4", + "linux-raw-sys", "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -3659,7 +3662,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3693,14 +3696,14 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -3756,7 +3759,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "xxhash-rust", ] @@ -3767,7 +3770,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f2aa8119b558a17992e0ac1fd07f080099564f24532858811ce04f742542440" dependencies = [ "server_fn_macro", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3856,12 +3859,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "sledgehammer_bindgen" @@ -3880,7 +3880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f62f06db0370222f7f498ef478fce9f8df5828848d1d3517e3331936d7074f55" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3904,15 +3904,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3994,9 +3994,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -4020,7 +4020,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4043,8 +4043,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" dependencies = [ "bitflags 2.9.1", - "cocoa 0.26.0", - "core-foundation 0.10.0", + "cocoa 0.26.1", + "core-foundation 0.10.1", "core-graphics 0.24.0", "crossbeam-channel", "dispatch", @@ -4084,7 +4084,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4102,7 +4102,7 @@ dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", + "rustix", "windows-sys 0.59.0", ] @@ -4149,7 +4149,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4160,17 +4160,16 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -4185,16 +4184,18 @@ dependencies = [ [[package]] name = "tokio" -version = "1.45.0" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "tracing", @@ -4209,7 +4210,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4252,7 +4253,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "toml_datetime", "winnow", ] @@ -4263,7 +4264,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "serde", "serde_spanned", "toml_datetime", @@ -4285,6 +4286,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -4310,20 +4329,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", ] @@ -4468,9 +4487,13 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "version-compare" @@ -4522,7 +4545,7 @@ checksum = "59195a1db0e95b920366d949ba5e0d3fc0e70b67c09be15ce5abb790106b0571" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4533,9 +4556,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -4568,7 +4591,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "wasm-bindgen-shared", ] @@ -4603,7 +4626,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4723,7 +4746,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4786,8 +4809,8 @@ checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ "windows-implement", "windows-interface", - "windows-result 0.2.0", - "windows-strings 0.1.0", + "windows-result", + "windows-strings", "windows-targets 0.52.6", ] @@ -4799,7 +4822,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4810,25 +4833,14 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result 0.3.3", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-result" @@ -4839,34 +4851,16 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-result" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-strings" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result 0.2.0", + "windows-result", "windows-targets 0.52.6", ] -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -4903,6 +4897,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -4951,9 +4954,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -5186,7 +5189,7 @@ checksum = "ac0099a336829fbf54c26b5f620c68980ebbe37196772aeaf6118df4931b5cb0" dependencies = [ "base64", "block", - "cocoa 0.26.0", + "cocoa 0.26.1", "core-graphics 0.24.0", "crossbeam-channel", "dpi", @@ -5275,7 +5278,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "synstructure", ] @@ -5340,22 +5343,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -5375,7 +5378,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "synstructure", ] @@ -5409,7 +5412,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e05e8ed..38500ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,14 @@ [package] name = "dx-portfolio" version = "0.1.0" -authors = ["Danilo Cesa "] +authors = ["Danilo Cesa "] edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -dioxus = { version = "0.6.0", features = ["router", "fullstack"] } +dioxus = { version = "0.6.3", features = ["router", "fullstack"] } +#dioxus-logger = {version = "0.6.3" } [features] default = ["web"] diff --git a/Dioxus.toml b/Dioxus.toml index 6573576..d8d2c38 100644 --- a/Dioxus.toml +++ b/Dioxus.toml @@ -3,7 +3,7 @@ [web.app] # HTML title tag content -title = "dx-portfolio" +title = "Dan Portfolio" # include `assets` in web platform [web.resource] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2913480 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM rust:1 AS chef +RUN cargo install cargo-chef +WORKDIR /app + +FROM chef AS planner +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +FROM chef AS builder +COPY --from=planner /app/recipe.json recipe.json +RUN cargo chef cook --release --recipe-path recipe.json +COPY . . + +# Install `dx` +RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash +RUN cargo binstall dioxus-cli --root /.cargo -y --force +ENV PATH="/.cargo/bin:$PATH" + +# Create the final bundle folder. Bundle always executes in release mode with optimizations enabled +RUN dx bundle --platform web + +FROM chef AS runtime +COPY --from=builder /app/target/dx/dx-portfolio/release/web/ /usr/local/app + +# set our port and make sure to listen for all connections +ENV PORT=8080 +ENV IP=0.0.0.0 + +# expose the port 8080 +EXPOSE 8080 + +WORKDIR /usr/local/app +ENTRYPOINT [ "/usr/local/app/server" ] diff --git a/assets/favicon/android-chrome-192x192.png b/assets/favicon/android-chrome-192x192.png new file mode 100644 index 0000000..0f52702 Binary files /dev/null and b/assets/favicon/android-chrome-192x192.png differ diff --git a/assets/favicon/android-chrome-512x512.png b/assets/favicon/android-chrome-512x512.png new file mode 100644 index 0000000..7e3e8d6 Binary files /dev/null and b/assets/favicon/android-chrome-512x512.png differ diff --git a/assets/favicon/apple-touch-icon.png b/assets/favicon/apple-touch-icon.png new file mode 100644 index 0000000..4d1178a Binary files /dev/null and b/assets/favicon/apple-touch-icon.png differ diff --git a/assets/favicon/favicon-16x16.png b/assets/favicon/favicon-16x16.png new file mode 100644 index 0000000..2f73511 Binary files /dev/null and b/assets/favicon/favicon-16x16.png differ diff --git a/assets/favicon/favicon-32x32.png b/assets/favicon/favicon-32x32.png new file mode 100644 index 0000000..bd4e344 Binary files /dev/null and b/assets/favicon/favicon-32x32.png differ diff --git a/assets/favicon/favicon.ico b/assets/favicon/favicon.ico new file mode 100644 index 0000000..835552f Binary files /dev/null and b/assets/favicon/favicon.ico differ diff --git a/assets/favicon/site.webmanifest b/assets/favicon/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/assets/favicon/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/assets/images/autoit-logo.jpg b/assets/images/autoit-logo.jpg new file mode 100644 index 0000000..e4456fb Binary files /dev/null and b/assets/images/autoit-logo.jpg differ diff --git a/assets/images/aws-logo.png b/assets/images/aws-logo.png new file mode 100644 index 0000000..b798bc1 Binary files /dev/null and b/assets/images/aws-logo.png differ diff --git a/assets/images/bootstrap-logo.png b/assets/images/bootstrap-logo.png new file mode 100644 index 0000000..d16049a Binary files /dev/null and b/assets/images/bootstrap-logo.png differ diff --git a/assets/images/cloudflare-logo.png b/assets/images/cloudflare-logo.png new file mode 100644 index 0000000..13e85d4 Binary files /dev/null and b/assets/images/cloudflare-logo.png differ diff --git a/assets/images/codeigniter-logo.png b/assets/images/codeigniter-logo.png new file mode 100644 index 0000000..ed4ed9a Binary files /dev/null and b/assets/images/codeigniter-logo.png differ diff --git a/assets/images/css-logo.png b/assets/images/css-logo.png new file mode 100644 index 0000000..36812a6 Binary files /dev/null and b/assets/images/css-logo.png differ diff --git a/assets/images/d3js-logo.png b/assets/images/d3js-logo.png new file mode 100644 index 0000000..40c8bdb Binary files /dev/null and b/assets/images/d3js-logo.png differ diff --git a/assets/images/dioxus-logo.png b/assets/images/dioxus-logo.png new file mode 100644 index 0000000..aa322de Binary files /dev/null and b/assets/images/dioxus-logo.png differ diff --git a/assets/images/docker-logo.png b/assets/images/docker-logo.png new file mode 100644 index 0000000..b64c2b6 Binary files /dev/null and b/assets/images/docker-logo.png differ diff --git a/assets/images/fastapi-logo.jpg b/assets/images/fastapi-logo.jpg new file mode 100644 index 0000000..f7b7db7 Binary files /dev/null and b/assets/images/fastapi-logo.jpg differ diff --git a/assets/images/gcp-logo.png b/assets/images/gcp-logo.png new file mode 100644 index 0000000..4e8842c Binary files /dev/null and b/assets/images/gcp-logo.png differ diff --git a/assets/images/git-logo.png b/assets/images/git-logo.png new file mode 100644 index 0000000..0bd9c57 Binary files /dev/null and b/assets/images/git-logo.png differ diff --git a/assets/images/html-logo.png b/assets/images/html-logo.png new file mode 100644 index 0000000..9fca7bb Binary files /dev/null and b/assets/images/html-logo.png differ diff --git a/assets/images/js.png b/assets/images/js.png new file mode 100644 index 0000000..7b5ffab Binary files /dev/null and b/assets/images/js.png differ diff --git a/assets/images/laravel-logo.png b/assets/images/laravel-logo.png new file mode 100644 index 0000000..737b90a Binary files /dev/null and b/assets/images/laravel-logo.png differ diff --git a/assets/images/outsystems-logo.png b/assets/images/outsystems-logo.png new file mode 100644 index 0000000..72d3bea Binary files /dev/null and b/assets/images/outsystems-logo.png differ diff --git a/assets/images/ovh-logo.png b/assets/images/ovh-logo.png new file mode 100644 index 0000000..ea74a87 Binary files /dev/null and b/assets/images/ovh-logo.png differ diff --git a/assets/images/phaser-logo.png b/assets/images/phaser-logo.png new file mode 100644 index 0000000..2dcec27 Binary files /dev/null and b/assets/images/phaser-logo.png differ diff --git a/assets/images/php.jpg b/assets/images/php.jpg new file mode 100644 index 0000000..745e97a Binary files /dev/null and b/assets/images/php.jpg differ diff --git a/assets/images/plsql-logo.png b/assets/images/plsql-logo.png new file mode 100644 index 0000000..ff94ce7 Binary files /dev/null and b/assets/images/plsql-logo.png differ diff --git a/assets/images/python-logo.png b/assets/images/python-logo.png new file mode 100644 index 0000000..7dff07c Binary files /dev/null and b/assets/images/python-logo.png differ diff --git a/assets/images/reactjs-logo.png b/assets/images/reactjs-logo.png new file mode 100644 index 0000000..1be0008 Binary files /dev/null and b/assets/images/reactjs-logo.png differ diff --git a/assets/images/rust-logo.png b/assets/images/rust-logo.png new file mode 100644 index 0000000..052e6fb Binary files /dev/null and b/assets/images/rust-logo.png differ diff --git a/assets/images/sass-logo.png b/assets/images/sass-logo.png new file mode 100644 index 0000000..d4f5cfa Binary files /dev/null and b/assets/images/sass-logo.png differ diff --git a/assets/images/semanticui-logo.png b/assets/images/semanticui-logo.png new file mode 100644 index 0000000..de8844f Binary files /dev/null and b/assets/images/semanticui-logo.png differ diff --git a/assets/images/sql-logo.jpg b/assets/images/sql-logo.jpg new file mode 100644 index 0000000..46b693a Binary files /dev/null and b/assets/images/sql-logo.jpg differ diff --git a/assets/images/svelte-logo.png b/assets/images/svelte-logo.png new file mode 100644 index 0000000..f767f85 Binary files /dev/null and b/assets/images/svelte-logo.png differ diff --git a/assets/images/tailwindcss-logo.png b/assets/images/tailwindcss-logo.png new file mode 100644 index 0000000..83072aa Binary files /dev/null and b/assets/images/tailwindcss-logo.png differ diff --git a/assets/images/terraform-logo.png b/assets/images/terraform-logo.png new file mode 100644 index 0000000..f776cff Binary files /dev/null and b/assets/images/terraform-logo.png differ diff --git a/assets/main.js b/assets/main.js new file mode 100644 index 0000000..e69de29 diff --git a/assets/styling/experience.css b/assets/styling/experience.css new file mode 100644 index 0000000..e00a11b --- /dev/null +++ b/assets/styling/experience.css @@ -0,0 +1,89 @@ +.experience-card { + background: var(--main); + border: 1px solid var(--border); + border-radius: 15px; + padding: 25px; + margin: 0 0 20px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + display: flex; + flex-direction: column; +} + +.experience-card:hover { + border-color: var(--border-hover); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); + transform: translateY(-2px); +} + +.experience-avatar { + width: 48px; + height: 48px; + background: #64748b; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.experience-avatar-inner { + width: 32px; + height: 32px; + background: rgba(255, 255, 255, 0.3); + border-radius: 8px; +} + +.experience-skills { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 20px; +} + +.skill-chip { + /* width: 24px; */ + padding: 2px; + height: 24px; + border-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + font-size: 10px; + font-weight: bold; + color: white; + border: 1px solid var(--border); + transition: all 0.2s ease; + cursor: pointer; +} + +.skill-chip:hover { + transform: scale(1.1); + border-color: var(--border-hover); +} + +@media (min-width: 1024px) { + .experience-item { + padding: 0 60px; /* Add padding to bring cards closer to center */ + } + + .experience-card-container { + width: calc( + 50% - 30px + ) !important; /* Reduce width to bring closer to center */ + } + + .timeline-spacer { + flex: 0 0 20% !important; /* Reduce spacer size from 50% to 20% */ + } + + .timeline-dot { + left: 50% !important; + transform: translateX(-50%) !important; + } + + .timeline-line { + left: 50% !important; + transform: translateX(-50%) !important; + } +} diff --git a/assets/styling/icons.css b/assets/styling/icons.css index 634693a..b7577bd 100644 --- a/assets/styling/icons.css +++ b/assets/styling/icons.css @@ -1,108 +1,17 @@ -@import"https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap"; -*, :before, :after { - --un-rotate: 0; - --un-rotate-x: 0; - --un-rotate-y: 0; - --un-rotate-z: 0; - --un-scale-x: 1; - --un-scale-y: 1; - --un-scale-z: 1; - --un-skew-x: 0; - --un-skew-y: 0; - --un-translate-x: 0; - --un-translate-y: 0; - --un-translate-z: 0; - --un-pan-x:; - --un-pan-y:; - --un-pinch-zoom:; - --un-scroll-snap-strictness: proximity; - --un-ordinal:; - --un-slashed-zero:; - --un-numeric-figure:; - --un-numeric-spacing:; - --un-numeric-fraction:; - --un-border-spacing-x: 0; - --un-border-spacing-y: 0; - --un-ring-offset-shadow: 0 0 rgba(0, 0, 0, 0); - --un-ring-shadow: 0 0 rgba(0, 0, 0, 0); - --un-shadow-inset:; - --un-shadow: 0 0 rgba(0, 0, 0, 0); - --un-ring-inset:; - --un-ring-offset-width: 0px; - --un-ring-offset-color: #fff; - --un-ring-width: 0px; - --un-ring-color: rgba(147, 197, 253, .5); - --un-blur:; - --un-brightness:; - --un-contrast:; - --un-drop-shadow:; - --un-grayscale:; - --un-hue-rotate:; - --un-invert:; - --un-saturate:; - --un-sepia:; - --un-backdrop-blur:; - --un-backdrop-brightness:; - --un-backdrop-contrast:; - --un-backdrop-grayscale:; - --un-backdrop-hue-rotate:; - --un-backdrop-invert:; - --un-backdrop-opacity:; - --un-backdrop-saturate:; - --un-backdrop-sepia: -} - -::backdrop { - --un-rotate: 0; - --un-rotate-x: 0; - --un-rotate-y: 0; - --un-rotate-z: 0; - --un-scale-x: 1; - --un-scale-y: 1; - --un-scale-z: 1; - --un-skew-x: 0; - --un-skew-y: 0; - --un-translate-x: 0; - --un-translate-y: 0; - --un-translate-z: 0; - --un-pan-x:; - --un-pan-y:; - --un-pinch-zoom:; - --un-scroll-snap-strictness: proximity; - --un-ordinal:; - --un-slashed-zero:; - --un-numeric-figure:; - --un-numeric-spacing:; - --un-numeric-fraction:; - --un-border-spacing-x: 0; - --un-border-spacing-y: 0; - --un-ring-offset-shadow: 0 0 rgba(0, 0, 0, 0); - --un-ring-shadow: 0 0 rgba(0, 0, 0, 0); - --un-shadow-inset:; - --un-shadow: 0 0 rgba(0, 0, 0, 0); - --un-ring-inset:; - --un-ring-offset-width: 0px; - --un-ring-offset-color: #fff; - --un-ring-width: 0px; - --un-ring-color: rgba(147, 197, 253, .5); - --un-blur:; - --un-brightness:; - --un-contrast:; - --un-drop-shadow:; - --un-grayscale:; - --un-hue-rotate:; - --un-invert:; - --un-saturate:; - --un-sepia:; - --un-backdrop-blur:; - --un-backdrop-brightness:; - --un-backdrop-contrast:; - --un-backdrop-grayscale:; - --un-backdrop-hue-rotate:; - --un-backdrop-invert:; - --un-backdrop-opacity:; - --un-backdrop-saturate:; - --un-backdrop-sepia: +@font-face { + font-family: Inter; + font-style: italic; + font-weight: 100; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -110,8 +19,14 @@ font-style: italic; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -119,8 +34,9 @@ font-style: italic; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -128,8 +44,15 @@ font-style: italic; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -137,8 +60,22 @@ font-style: italic; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -146,8 +83,26 @@ font-style: italic; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -155,17 +110,28 @@ font-style: italic; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF -} - -@font-face { - font-family: Inter; - font-style: italic; - font-weight: 100; - font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dpRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -173,8 +139,15 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -182,8 +155,14 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -191,8 +170,9 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -200,8 +180,15 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -209,8 +196,22 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -218,8 +219,26 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -227,8 +246,28 @@ font-style: italic; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdtRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -236,8 +275,15 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -245,8 +291,14 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -254,8 +306,9 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -263,8 +316,15 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -272,8 +332,22 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -281,8 +355,26 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -290,8 +382,28 @@ font-style: italic; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTch9tRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -299,8 +411,15 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -308,8 +427,14 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -317,8 +442,9 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -326,8 +452,15 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -335,8 +468,22 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -344,8 +491,26 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -353,8 +518,28 @@ font-style: italic; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dtRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -362,8 +547,15 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -371,8 +563,14 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -380,8 +578,9 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -389,8 +588,15 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -398,8 +604,22 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -407,8 +627,26 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -416,8 +654,28 @@ font-style: italic; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc69tRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -425,8 +683,15 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -434,8 +699,14 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -443,8 +714,9 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -452,8 +724,15 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -461,8 +740,22 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -470,8 +763,26 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -479,8 +790,28 @@ font-style: italic; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcB9xRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -488,8 +819,15 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -497,8 +835,14 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -506,8 +850,9 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -515,8 +860,15 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -524,8 +876,22 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -533,8 +899,26 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -542,8 +926,28 @@ font-style: italic; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcPtxRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -551,8 +955,15 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -560,8 +971,14 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -569,8 +986,9 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -578,8 +996,15 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -587,8 +1012,22 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -596,8 +1035,26 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -605,8 +1062,28 @@ font-style: italic; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTcWdxRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -614,8 +1091,15 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRh5WFo-4.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRh5WFo-4.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -623,8 +1107,14 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRjpWFo-4.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRjpWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -632,8 +1122,9 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRhpWFo-4.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRhpWFo-4.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -641,8 +1132,15 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRiZWFo-4.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRiZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -650,8 +1148,22 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRhZWFo-4.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRhZWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -659,8 +1171,26 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRhJWFo-4.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRhJWFo-4.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -668,8 +1198,28 @@ font-style: italic; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRipWF.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTccNxRipWF.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -677,8 +1227,15 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -686,8 +1243,14 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -695,8 +1258,9 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -704,8 +1268,15 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -713,8 +1284,22 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -722,8 +1307,26 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -731,8 +1334,28 @@ font-style: normal; font-weight: 100; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -740,8 +1363,15 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -749,8 +1379,14 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -758,8 +1394,9 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -767,8 +1404,15 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -776,8 +1420,22 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -785,8 +1443,26 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -794,8 +1470,28 @@ font-style: normal; font-weight: 200; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -803,8 +1499,15 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -812,8 +1515,14 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -821,8 +1530,9 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -830,8 +1540,15 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -839,8 +1556,22 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -848,8 +1579,26 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -857,8 +1606,28 @@ font-style: normal; font-weight: 300; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -866,8 +1635,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -875,8 +1651,14 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -884,8 +1666,9 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -893,8 +1676,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -902,8 +1692,22 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -911,8 +1715,26 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -920,8 +1742,28 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -929,8 +1771,15 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -938,8 +1787,14 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -947,8 +1802,9 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -956,8 +1812,15 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -965,8 +1828,22 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -974,8 +1851,26 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -983,8 +1878,28 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -992,8 +1907,15 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -1001,8 +1923,14 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -1010,8 +1938,9 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -1019,8 +1948,15 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -1028,8 +1964,22 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -1037,8 +1987,26 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -1046,8 +2014,28 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -1055,8 +2043,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -1064,8 +2059,14 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -1073,8 +2074,9 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -1082,8 +2084,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -1091,8 +2100,22 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -1100,8 +2123,26 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -1109,8 +2150,28 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -1118,8 +2179,15 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -1127,8 +2195,14 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -1136,8 +2210,9 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -1145,8 +2220,15 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -1154,8 +2236,22 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -1163,8 +2259,26 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -1172,8 +2286,28 @@ font-style: normal; font-weight: 800; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } @font-face { @@ -1181,8 +2315,15 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZJhiI2B.woff2) format("woff2"); - unicode-range:U + 0460-052F, U + 1C80-1C8A, U + 20B4, U + 2DE0-2DFF, U + A640-A69F, U + FE2E-FE2F + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZJhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0460-052F, + U + 1C80-1C8A, + U + 20B4, + U + 2DE0-2DFF, + U + A640-A69F, + U + FE2E-FE2F; } @font-face { @@ -1190,8 +2331,14 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZthiI2B.woff2) format("woff2"); - unicode-range:U + 0301, U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116 + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZthiI2B.woff2) + format("woff2"); + unicode-range: + U + 0301, + U + 0400-045F, + U + 0490-0491, + U + 04B0-04B1, + U + 2116; } @font-face { @@ -1199,8 +2346,9 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZNhiI2B.woff2) format("woff2"); - unicode-range:U + 1F00-1FFF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZNhiI2B.woff2) + format("woff2"); + unicode-range: U + 1F00-1FFF; } @font-face { @@ -1208,8 +2356,15 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZxhiI2B.woff2) format("woff2"); - unicode-range:U + 0370-0377, U + 037A-037F, U + 0384-038A, U + 038C, U + 038E-03A1, U + 03A3-03FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZxhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0370-0377, + U + 037A-037F, + U + 0384-038A, + U + 038C, + U + 038e-3A1, + U + 03A3-03FF; } @font-face { @@ -1217,8 +2372,22 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZBhiI2B.woff2) format("woff2"); - unicode-range:U + 0102-0103, U + 0110-0111, U + 0128-0129, U + 0168-0169, U + 01A0-01A1, U + 01AF-01B0, U + 0300-0301, U + 0303-0304, U + 0308-0309, U + 0323, U + 0329, U + 1EA0-1EF9, U + 20AB + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZBhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0102-0103, + U + 0110-0111, + U + 0128-0129, + U + 0168-0169, + U + 01A0-01A1, + U + 01AF-01B0, + U + 0300-0301, + U + 0303-0304, + U + 0308-0309, + U + 0323, + U + 0329, + U + 1EA0-1EF9, + U + 20AB; } @font-face { @@ -1226,8 +2395,26 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZFhiI2B.woff2) format("woff2"); - unicode-range:U + 0100-02BA, U + 02BD-02C5, U + 02C7-02CC, U + 02CE-02D7, U + 02DD-02FF, U + 0304, U + 0308, U + 0329, U + 1D00-1DBF, U + 1E00-1E9F, U + 1EF2-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20C0, U + 2113, U + 2C60-2C7F, U + A720-A7FF + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZFhiI2B.woff2) + format("woff2"); + unicode-range: + U + 0100-02BA, + U + 02BD-02C5, + U + 02C7-02CC, + U + 02CE-02D7, + U + 02DD-02FF, + U + 0304, + U + 0308, + U + 0329, + U + 1D00-1DBF, + U + 1-1e9F, + U + 1EF2-1EFF, + U + 2020, + U + 20A0-20AB, + U + 20AD-20C0, + U + 2113, + U + 2C60-2C7F, + U + A720-A7FF; } @font-face { @@ -1235,8 +2422,28 @@ font-style: normal; font-weight: 900; font-display: swap; - src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZ9hiA.woff2) format("woff2"); - unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 0304, U + 0308, U + 0329, U + 2000-206F, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD + src: url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuBWYAZ9hiA.woff2) + format("woff2"); + unicode-range: + U + 0000-00FF, + U + 0131, + U + 0152-0153, + U + 02BB-02BC, + U + 02C6, + U + 02DA, + U + 02DC, + U + 0304, + U + 0308, + U + 0329, + U + 2000-206F, + U + 20AC, + U + 2122, + U + 2191, + U + 2193, + U + 2212, + U + 2215, + U + FEFF, + U + FFFD; } .i-carbon-assembly-cluster { @@ -1250,7 +2457,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-building { @@ -1264,7 +2471,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-calendar { @@ -1278,7 +2485,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-chevron-left { @@ -1292,7 +2499,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-chevron-right { @@ -1306,7 +2513,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-close { @@ -1320,7 +2527,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-code { @@ -1334,7 +2541,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-condition-point { @@ -1348,7 +2555,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-cube { @@ -1362,7 +2569,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:2.5em + height: 3.5em; } .i-carbon-development { @@ -1376,7 +2583,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:2.5em + height: 3.5em; } .i-carbon-education { @@ -1390,7 +2597,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-hourglass { @@ -1404,7 +2611,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-image { @@ -1418,7 +2625,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-link { @@ -1432,7 +2639,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-location { @@ -1446,7 +2653,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em + height: 1em; } .i-carbon-moon { @@ -1460,7 +2667,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em; + height: 1em; } .i-carbon-result { @@ -1474,7 +2681,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:2.5em; + height: 3.5em; } .i-carbon-search { @@ -1488,7 +2695,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em; + height: 1em; } .i-carbon-search-locate-mirror { @@ -1502,7 +2709,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em; + height: 1em; } .i-carbon-software-resource-cluster { @@ -1516,7 +2723,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:2.5em; + height: 3.5em; } .i-carbon-sun { @@ -1530,7 +2737,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em; + height: 1em; } .i-carbon-text-font { @@ -1544,7 +2751,7 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em; + height: 1em; } .i-carbon-time { @@ -1558,5 +2765,5 @@ display: inline-block; vertical-align: middle; width: 1em; - height:1em; -} \ No newline at end of file + height: 1em; +} diff --git a/assets/styling/main.css b/assets/styling/main.css index c10b918..7ea9b90 100644 --- a/assets/styling/main.css +++ b/assets/styling/main.css @@ -31,11 +31,11 @@ --code-operator-light: #016464; --link-dark: #2563eb; --link-light: #3b82f6; - --dark-0-60: rgba(0, 0, 0, .6); - --light-0-60: rgba(255, 255, 255, .6); + --dark-0-60: rgba(0, 0, 0, 0.6); + --light-0-60: rgba(255, 255, 255, 0.6); --text-f: "Inter"; --title-f: "Inter"; - overflow-y:scroll; + overflow-y: scroll; color-scheme: light; --main: var(--light-0); --main-close: var(--light-00); @@ -62,12 +62,16 @@ --code-function: var(--code-function-light); --code-constant: var(--code-constant-light); --code-operator: var(--code-operator-light); - --link: var(--link-dark) + --link: var(--link-dark); } -.content .mb6t29 { -display: flex; -flex-direction: column; -flex: 1; -padding: 0; -} \ No newline at end of file +.card.d1441skb { + background: + linear-gradient( + 90deg, + var(--main) 0%, + var(--main) 60%, + var(--main-60) 100% + ), + no-repeat right 40% / 40% var(--bg-img); +} diff --git a/assets/styling/media.css b/assets/styling/media.css index 25361a9..28fb687 100644 --- a/assets/styling/media.css +++ b/assets/styling/media.css @@ -1,4 +1,4 @@ -@media (min-width: 640px) { +/* @media (min-width: 640px) { .container { max-width:640px } @@ -26,8 +26,12 @@ .container { max-width:1536px } +<<<<<<< HEAD } -/* +======= +} */ +>>>>>>> 6ac0b89 (feature: initial portfolio template) +/* @media (min-width: 640px) { .sm\:grid-cols-2 { @@ -218,4 +222,4 @@ .lg\:text-\[4em\] { font-size:4em } -} */ \ No newline at end of file +} */ diff --git a/assets/styling/navbar.css b/assets/styling/navbar.css index 06bc1f3..f0db973 100644 --- a/assets/styling/navbar.css +++ b/assets/styling/navbar.css @@ -10,7 +10,11 @@ z-index: 10; padding: 0 10px; height: 50px; - background-color:var(--main) + background-color: var(--main); +} + +.nav-menu .jdc7ud:hover { + background-color: var(--main-hover); } .nav-menu-item .jdc7ud { @@ -24,12 +28,12 @@ } .nav-menu-item-label .jdc7ud { - margin-left:10px + margin-left: 10px; } -.nav-menu-item .jdc7ud:hover { +/* .nav-menu-item .jdc7ud:hover { background-color:var(--main-hover) -} +} */ .nav-menu-mobile .jdc7ud { z-index: -1; @@ -41,52 +45,261 @@ top: 51px; transform: translateY(-100vh); transition-property: transform opacity; - transition: .4s ease; - opacity:0 + transition: 0.4s ease; + opacity: 0; } .nav-menu-mobile-open .jdc7ud { opacity: 1; - transform: translateY(0) + transform: translateY(0); } - .nav-bar-mobile-btn { width: 36px; - height:36px + height: 36px; } -.nav-bar-mobile-btn:before, .nav-bar-mobile-btn:after { +.nav-bar-mobile-btn:before, +.nav-bar-mobile-btn:after { content: ""; display: block; height: 1px; width: 20px; background-color: var(--secondary-text); - transition:transform .2s ease + transition: transform 0.2s ease; } -.nav-bar-mobile-btn:hover:before, .nav-bar-mobile-btn:hover:after { - background-color:auto +.nav-bar-mobile-btn:hover:before, +.nav-bar-mobile-btn:hover:after { + background-color: auto; } .nav-bar-mobile-btn:before { - transform:translateY(-5px) rotate(0) + transform: translateY(-5px) rotate(0); } .nav-bar-mobile-btn:after { - transform:translateY(4px) rotate(0) + transform: translateY(4px) rotate(0); } .nav-bar-mobile-btn-expanded:before { - transform:translateY(2px) rotate(45deg) + transform: translateY(2px) rotate(45deg); } .nav-bar-mobile-btn-expanded:after { - transform:translateY(0) rotate(-45deg) + transform: translateY(0) rotate(-45deg); } @media (max-width: 950px) { .nav-menu-item-label .jdc7ud { - display:none + display: none; } -} \ No newline at end of file +} + +/* Dropdown Menu Styles */ +.dropdown:hover .dropdown-content { + display: block; +} + +.dropdown-content { + min-width: 160px; + box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); + z-index: 1; +} + +/* Bottom Sheet Menu Styles */ +.quick-menu-button { + position: fixed; + bottom: 2rem; + left: 50%; + transform: translateX(-50%); + z-index: 106; + display: flex; + align-items: center; + justify-content: space-between; + background: linear-gradient(to right, #60a5fa, #2563eb); + padding: 0.75rem 1.25rem; + border-radius: 1.75rem; + box-shadow: + 0 10px 25px -3px rgba(0, 0, 0, 0.1), + 0 4px 6px -2px rgba(0, 0, 0, 0.05); + color: white; + font-size: 1rem; + white-space: nowrap; + cursor: pointer; + transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); + border: none; +} + +.quick-menu-button:hover { + box-shadow: + 0 20px 35px -10px rgba(0, 0, 0, 0.2), + 0 10px 10px -5px rgba(0, 0, 0, 0.04); + transform: translateX(-50%) scale(1.05); +} + +.quick-menu-hamburger { + display: flex; + align-items: center; + width: 0.75rem; + height: 0.75rem; + margin-right: 1.25rem; +} + +.quick-menu-hamburger-line { + width: 100%; + height: 1px; + background: white; + position: relative; + box-shadow: + 0 4px 0 white, + 0 -4px 0 white; +} + +.bottom-sheet-overlay { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.3); + z-index: 100; + transition: opacity 0.3s ease; +} + +.bottom-sheet-menu { + position: fixed; + bottom: 0; + left: 0; + right: 0; + width: 100%; + background: white; + border-top-left-radius: 1.25rem; + border-top-right-radius: 1.25rem; + box-shadow: 0px -9px 50px -30px black; + z-index: 105; + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + font-family: + "Montserrat", + -apple-system, + BlinkMacSystemFont, + sans-serif; +} + +.bottom-sheet-menu.hidden { + transform: translateY(100%); +} + +.bottom-sheet-menu.visible { + transform: translateY(0); +} + +.menu-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 1.25rem; + border-bottom: 2px solid #f3f4f6; +} + +.menu-handle::after { + content: ""; + width: 2px; + height: 0.625rem; + background: #1f2937; + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); +} + +.menu-title { + font-size: 1.125rem; + font-weight: bold; + color: #1f2937; +} + +.menu-close { + display: flex; + align-items: center; + justify-content: center; + width: 1.5rem; + height: 1.5rem; + background: #4b5563; + border-radius: 50%; + cursor: pointer; + border: none; +} + +.menu-close-icon { + width: 1rem; + height: 2px; + background: white; + position: relative; + transform: rotate(45deg); +} + +.menu-close-icon::before { + content: ""; + width: 2px; + height: 1rem; + background: white; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.menu-links { + display: flex; + padding: 0.75rem 1rem; + font-weight: bold; + overflow-x: auto; + border-bottom: 2px solid #f3f4f6; +} + +.menu-link { + flex: 1 1 auto; + padding: 0.75rem 0.5rem; + color: #1f2937; + text-decoration: none; + text-align: center; + white-space: nowrap; + border-radius: 0.375rem; + transition: background-color 0.15s ease; +} + +.menu-link:hover { + background-color: #f9fafb; +} + +.menu-contact { + display: flex; + padding: 0.5rem; + padding-bottom: 1rem; +} + +.menu-contact-item { + flex: 1 1 33.333333%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 0.75rem; + margin: 0 0.25rem; + border-radius: 0.5rem; + background: #f3f4f6; + color: #2563eb; + text-decoration: none; + font-size: 0.875rem; + font-weight: bold; + transition: background-color 0.15s ease; +} + +.menu-contact-item:hover { + background-color: #e5e7eb; +} + +.menu-contact-icon { + width: 1.5rem; + height: 1.5rem; + margin-bottom: 0.25rem; + fill: currentColor; +} diff --git a/assets/styling/tailwind.css b/assets/styling/tailwind.css new file mode 100644 index 0000000..d9d6441 --- /dev/null +++ b/assets/styling/tailwind.css @@ -0,0 +1,822 @@ +/*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */ +@layer properties; +@layer theme, base, components, utilities; +@layer theme { + :root, :host { + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; + --spacing: 0.25rem; + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --font-weight-extralight: 200; + --font-weight-light: 300; + --font-weight-medium: 500; + --font-weight-bold: 700; + --font-weight-black: 900; + --tracking-wider: 0.05em; + --radius-md: 0.375rem; + --radius-lg: 0.5rem; + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, ::after, ::before, ::backdrop, ::file-selector-button { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0 solid; + } + html, :host { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + tab-size: 4; + font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); + font-feature-settings: var(--default-font-feature-settings, normal); + font-variation-settings: var(--default-font-variation-settings, normal); + -webkit-tap-highlight-color: transparent; + } + hr { + height: 0; + color: inherit; + border-top-width: 1px; + } + abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + h1, h2, h3, h4, h5, h6 { + font-size: inherit; + font-weight: inherit; + } + a { + color: inherit; + -webkit-text-decoration: inherit; + text-decoration: inherit; + } + b, strong { + font-weight: bolder; + } + code, kbd, samp, pre { + font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); + font-feature-settings: var(--default-mono-font-feature-settings, normal); + font-variation-settings: var(--default-mono-font-variation-settings, normal); + font-size: 1em; + } + small { + font-size: 80%; + } + sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.5em; + } + table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; + } + :-moz-focusring { + outline: auto; + } + progress { + vertical-align: baseline; + } + summary { + display: list-item; + } + ol, ul, menu { + list-style: none; + } + img, svg, video, canvas, audio, iframe, embed, object { + display: block; + vertical-align: middle; + } + img, video { + max-width: 100%; + height: auto; + } + button, input, select, optgroup, textarea, ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + border-radius: 0; + background-color: transparent; + opacity: 1; + } + :where(select:is([multiple], [size])) optgroup { + font-weight: bolder; + } + :where(select:is([multiple], [size])) optgroup option { + padding-inline-start: 20px; + } + ::file-selector-button { + margin-inline-end: 4px; + } + ::placeholder { + opacity: 1; + } + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, currentcolor 50%, transparent); + } + } + } + textarea { + resize: vertical; + } + ::-webkit-search-decoration { + -webkit-appearance: none; + } + ::-webkit-date-and-time-value { + min-height: 1lh; + text-align: inherit; + } + ::-webkit-datetime-edit { + display: inline-flex; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { + appearance: button; + } + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden="until-found"])) { + display: none !important; + } +} +@layer utilities { + .visible { + visibility: visible; + } + .absolute { + position: absolute; + } + .relative { + position: relative; + } + .top-0 { + top: calc(var(--spacing) * 0); + } + .bottom-0 { + bottom: calc(var(--spacing) * 0); + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .m-\[2\.5px\] { + margin: 2.5px; + } + .my-\[10px\] { + margin-block: 10px; + } + .mt-5 { + margin-top: calc(var(--spacing) * 5); + } + .mt-10 { + margin-top: calc(var(--spacing) * 10); + } + .mb-7 { + margin-bottom: calc(var(--spacing) * 7); + } + .ml-0 { + margin-left: calc(var(--spacing) * 0); + } + .ml-2 { + margin-left: calc(var(--spacing) * 2); + } + .line-clamp-3 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + } + .block { + display: block; + } + .contents { + display: contents; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline-block { + display: inline-block; + } + .inline-flex { + display: inline-flex; + } + .h-\[1px\] { + height: 1px; + } + .h-full { + height: 100%; + } + .w-\[0\.5px\] { + width: 0.5px; + } + .w-\[20px\] { + width: 20px; + } + .w-auto { + width: auto; + } + .w-full { + width: 100%; + } + .flex-1 { + flex: 1; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .cursor-pointer { + cursor: pointer; + } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .flex-col { + flex-direction: column; + } + .flex-row { + flex-direction: row; + } + .flex-row-reverse { + flex-direction: row-reverse; + } + .flex-wrap { + flex-wrap: wrap; + } + .content-center { + align-content: center; + } + .items-center { + align-items: center; + } + .items-start { + align-items: flex-start; + } + .items-stretch { + align-items: stretch; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .gap-1 { + gap: calc(var(--spacing) * 1); + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-3 { + gap: calc(var(--spacing) * 3); + } + .gap-5 { + gap: calc(var(--spacing) * 5); + } + .gap-7 { + gap: calc(var(--spacing) * 7); + } + .self-center { + align-self: center; + } + .self-stretch { + align-self: stretch; + } + .overflow-hidden { + overflow: hidden; + } + .rounded { + border-radius: 0.25rem; + } + .rounded-\[15px\] { + border-radius: 15px; + } + .rounded-\[20px\] { + border-radius: 20px; + } + .rounded-lg { + border-radius: var(--radius-lg); + } + .rounded-md { + border-radius: var(--radius-md); + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-1 { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-\[1px\] { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-none { + --tw-border-style: none; + border-style: none; + } + .border-solid { + --tw-border-style: solid; + border-style: solid; + } + .border-\[var\(--border\)\] { + border-color: var(--border); + } + .border-transparent { + border-color: transparent; + } + .bg-\[var\(--border\)\] { + background-color: var(--border); + } + .bg-\[var\(--main\)\] { + background-color: var(--main); + } + .bg-\[var\(--main-hover\)\] { + background-color: var(--main-hover); + } + .bg-transparent { + background-color: transparent; + } + .p-5 { + padding: calc(var(--spacing) * 5); + } + .p-15 { + padding: calc(var(--spacing) * 15); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .px-\[15px\] { + padding-inline: 15px; + } + .px-\[20px\] { + padding-inline: 20px; + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-4 { + padding-block: calc(var(--spacing) * 4); + } + .py-\[5px\] { + padding-block: 5px; + } + .py-\[10px\] { + padding-block: 10px; + } + .text-center { + text-align: center; + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-\[0\.9em\] { + font-size: 0.9em; + } + .text-\[1\.2em\] { + font-size: 1.2em; + } + .text-\[1\.15em\] { + font-size: 1.15em; + } + .font-\[var\(--title-f\)\] { + --tw-font-weight: var(--title-f); + font-weight: var(--title-f); + } + .font-black { + --tw-font-weight: var(--font-weight-black); + font-weight: var(--font-weight-black); + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-extralight { + --tw-font-weight: var(--font-weight-extralight); + font-weight: var(--font-weight-extralight); + } + .font-light { + --tw-font-weight: var(--font-weight-light); + font-weight: var(--font-weight-light); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .tracking-\[4px\] { + --tw-tracking: 4px; + letter-spacing: 4px; + } + .tracking-wider { + --tw-tracking: var(--tracking-wider); + letter-spacing: var(--tracking-wider); + } + .text-ellipsis { + text-overflow: ellipsis; + } + .whitespace-nowrap { + white-space: nowrap; + } + .\!text-\[var\(--secondary-text\)\] { + color: var(--secondary-text) !important; + } + .text-\[inherit\] { + color: inherit; + } + .text-\[var\(--main-close\)\] { + color: var(--main-close); + } + .text-\[var\(--secondary-text\)\] { + color: var(--secondary-text); + } + .text-\[var\(--tertiary-text\)\] { + color: var(--tertiary-text); + } + .text-\[var\(--text\)\] { + color: var(--text); + } + .text-inherit { + color: inherit; + } + .grayscale-65 { + --tw-grayscale: grayscale(65%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .transition { + transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .duration-300 { + --tw-duration: 300ms; + transition-duration: 300ms; + } + .duration-\[150ms\] { + --tw-duration: 150ms; + transition-duration: 150ms; + } + .hover\:z-5 { + &:hover { + @media (hover: hover) { + z-index: 5; + } + } + } + .hover\:border-\[var\(--border-hover\)\] { + &:hover { + @media (hover: hover) { + border-color: var(--border-hover); + } + } + } + .hover\:bg-\[color\:var\(--main-hover\)\] { + &:hover { + @media (hover: hover) { + background-color: var(--main-hover); + } + } + } + .hover\:bg-\[var\(--main-hover\)\] { + &:hover { + @media (hover: hover) { + background-color: var(--main-hover); + } + } + } + .hover\:grayscale-0 { + &:hover { + @media (hover: hover) { + --tw-grayscale: grayscale(0%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + } + } + .sm\:flex-row { + @media (width >= 40rem) { + flex-direction: row; + } + } + .sm\:items-center { + @media (width >= 40rem) { + align-items: center; + } + } + .sm\:gap-5 { + @media (width >= 40rem) { + gap: calc(var(--spacing) * 5); + } + } + .sm\:px-4 { + @media (width >= 40rem) { + padding-inline: calc(var(--spacing) * 4); + } + } + .sm\:py-8 { + @media (width >= 40rem) { + padding-block: calc(var(--spacing) * 8); + } + } + .sm\:text-\[3em\] { + @media (width >= 40rem) { + font-size: 3em; + } + } + .md\:ml-\[20px\] { + @media (width >= 48rem) { + margin-left: 20px; + } + } + .md\:flex { + @media (width >= 48rem) { + display: flex; + } + } + .md\:hidden { + @media (width >= 48rem) { + display: none; + } + } + .md\:inline { + @media (width >= 48rem) { + display: inline; + } + } + .md\:flex-1 { + @media (width >= 48rem) { + flex: 1; + } + } + .md\:grid-cols-2 { + @media (width >= 48rem) { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + .md\:flex-col { + @media (width >= 48rem) { + flex-direction: column; + } + } + .md\:flex-row { + @media (width >= 48rem) { + flex-direction: row; + } + } + .md\:items-start { + @media (width >= 48rem) { + align-items: flex-start; + } + } + .md\:justify-start { + @media (width >= 48rem) { + justify-content: flex-start; + } + } + .md\:gap-0 { + @media (width >= 48rem) { + gap: calc(var(--spacing) * 0); + } + } + .md\:gap-1 { + @media (width >= 48rem) { + gap: calc(var(--spacing) * 1); + } + } + .md\:gap-3 { + @media (width >= 48rem) { + gap: calc(var(--spacing) * 3); + } + } + .md\:px-6 { + @media (width >= 48rem) { + padding-inline: calc(var(--spacing) * 6); + } + } + .md\:py-12 { + @media (width >= 48rem) { + padding-block: calc(var(--spacing) * 12); + } + } + .md\:text-left { + @media (width >= 48rem) { + text-align: left; + } + } + .md\:text-\[3\.5em\] { + @media (width >= 48rem) { + font-size: 3.5em; + } + } + .lg\:flex { + @media (width >= 64rem) { + display: flex; + } + } + .lg\:inline { + @media (width >= 64rem) { + display: inline; + } + } + .lg\:w-auto { + @media (width >= 64rem) { + width: auto; + } + } + .lg\:grid-cols-3 { + @media (width >= 64rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } + .lg\:flex-row { + @media (width >= 64rem) { + flex-direction: row; + } + } + .lg\:items-center { + @media (width >= 64rem) { + align-items: center; + } + } + .lg\:gap-5 { + @media (width >= 64rem) { + gap: calc(var(--spacing) * 5); + } + } + .lg\:text-\[4em\] { + @media (width >= 64rem) { + font-size: 4em; + } + } +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-tracking { + syntax: "*"; + inherits: false; +} +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@layer properties { + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + *, ::before, ::after, ::backdrop { + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-border-style: solid; + --tw-font-weight: initial; + --tw-tracking: initial; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; + --tw-duration: initial; + } + } +} diff --git a/input.css b/input.css index e065eb9..3b1d830 100644 --- a/input.css +++ b/input.css @@ -1,4 +1,3 @@ @import "tailwindcss"; -@tailwind base; -@tailwind components; -@tailwind utilities; \ No newline at end of file +@source "./src/**/*.{rs,html,css}"; +@source "./assets/**/*.{css,png,jpeg,jpg}"; diff --git a/package-lock.json b/package-lock.json index e9b9c7c..c982c4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,14 @@ { - "name": "dx-portfolio", + "name": "portfolio-dx", "lockfileVersion": 3, "requires": true, "packages": { "": { "dependencies": { "@tailwindcss/cli": "^4.1.7", - "tailwindcss": "^4.1.7" + "autoprefixer": "^10.4.21", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.10" } }, "node_modules/@ampproject/remapping": { @@ -35,17 +37,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -57,25 +55,16 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -378,27 +367,27 @@ } }, "node_modules/@tailwindcss/cli": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.1.7.tgz", - "integrity": "sha512-hJNjpov/UiJc9ZWH4j/eEQxqklADrD/71s+t8Y0wbyQVAwtLkSp+MeC/sHTb03X+28rfbe0fRXkiBsf73/IwPg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.1.11.tgz", + "integrity": "sha512-7RAFOrVaXCFz5ooEG36Kbh+sMJiI2j4+Ozp71smgjnLfBRu7DTfoq8DsTvzse2/6nDeo2M3vS/FGaxfDgr3rtQ==", "license": "MIT", "dependencies": { "@parcel/watcher": "^2.5.1", - "@tailwindcss/node": "4.1.7", - "@tailwindcss/oxide": "4.1.7", + "@tailwindcss/node": "4.1.11", + "@tailwindcss/oxide": "4.1.11", "enhanced-resolve": "^5.18.1", "mri": "^1.2.0", "picocolors": "^1.1.1", - "tailwindcss": "4.1.7" + "tailwindcss": "4.1.11" }, "bin": { "tailwindcss": "dist/index.mjs" } }, "node_modules/@tailwindcss/node": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.7.tgz", - "integrity": "sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.11.tgz", + "integrity": "sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", @@ -407,13 +396,13 @@ "lightningcss": "1.30.1", "magic-string": "^0.30.17", "source-map-js": "^1.2.1", - "tailwindcss": "4.1.7" + "tailwindcss": "4.1.11" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.7.tgz", - "integrity": "sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.11.tgz", + "integrity": "sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -424,24 +413,24 @@ "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.7", - "@tailwindcss/oxide-darwin-arm64": "4.1.7", - "@tailwindcss/oxide-darwin-x64": "4.1.7", - "@tailwindcss/oxide-freebsd-x64": "4.1.7", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.7", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.7", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.7", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.7", - "@tailwindcss/oxide-linux-x64-musl": "4.1.7", - "@tailwindcss/oxide-wasm32-wasi": "4.1.7", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.7", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.7" + "@tailwindcss/oxide-android-arm64": "4.1.11", + "@tailwindcss/oxide-darwin-arm64": "4.1.11", + "@tailwindcss/oxide-darwin-x64": "4.1.11", + "@tailwindcss/oxide-freebsd-x64": "4.1.11", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.11", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.11", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.11", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.11", + "@tailwindcss/oxide-linux-x64-musl": "4.1.11", + "@tailwindcss/oxide-wasm32-wasi": "4.1.11", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.11", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.11" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.7.tgz", - "integrity": "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.11.tgz", + "integrity": "sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==", "cpu": [ "arm64" ], @@ -455,9 +444,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.7.tgz", - "integrity": "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.11.tgz", + "integrity": "sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==", "cpu": [ "arm64" ], @@ -471,9 +460,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.7.tgz", - "integrity": "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.11.tgz", + "integrity": "sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==", "cpu": [ "x64" ], @@ -487,9 +476,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.7.tgz", - "integrity": "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.11.tgz", + "integrity": "sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==", "cpu": [ "x64" ], @@ -503,9 +492,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.7.tgz", - "integrity": "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.11.tgz", + "integrity": "sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==", "cpu": [ "arm" ], @@ -519,9 +508,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.7.tgz", - "integrity": "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.11.tgz", + "integrity": "sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==", "cpu": [ "arm64" ], @@ -535,9 +524,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.7.tgz", - "integrity": "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.11.tgz", + "integrity": "sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==", "cpu": [ "arm64" ], @@ -551,9 +540,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.7.tgz", - "integrity": "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.11.tgz", + "integrity": "sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==", "cpu": [ "x64" ], @@ -567,9 +556,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.7.tgz", - "integrity": "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.11.tgz", + "integrity": "sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==", "cpu": [ "x64" ], @@ -583,9 +572,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.7.tgz", - "integrity": "sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.11.tgz", + "integrity": "sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -603,7 +592,7 @@ "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@emnapi/wasi-threads": "^1.0.2", - "@napi-rs/wasm-runtime": "^0.2.9", + "@napi-rs/wasm-runtime": "^0.2.11", "@tybys/wasm-util": "^0.9.0", "tslib": "^2.8.0" }, @@ -612,9 +601,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.7.tgz", - "integrity": "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.11.tgz", + "integrity": "sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==", "cpu": [ "arm64" ], @@ -628,9 +617,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.7.tgz", - "integrity": "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.11.tgz", + "integrity": "sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==", "cpu": [ "x64" ], @@ -652,6 +641,43 @@ "node": ">=8" } }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -664,6 +690,58 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -685,10 +763,16 @@ "node": ">=0.10" } }, + "node_modules/electron-to-chromium": { + "version": "1.5.181", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.181.tgz", + "integrity": "sha512-+ISMj8OIQ+0qEeDj14Rt8WwcTOiqHyAB+5bnK1K7xNNLjBJ4hRCQfUkw8RWtcLbfBzDwc15ZnKH0c7SNOfwiyA==", + "license": "ISC" + }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", + "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -698,6 +782,15 @@ "node": ">=10.13.0" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -710,6 +803,19 @@ "node": ">=8" } }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1059,12 +1165,45 @@ "node": ">=4" } }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "license": "MIT" }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1083,6 +1222,40 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1093,9 +1266,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.7.tgz", - "integrity": "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.11.tgz", + "integrity": "sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==", "license": "MIT" }, "node_modules/tapable": { @@ -1136,6 +1309,36 @@ "node": ">=8.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/yallist": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", diff --git a/package.json b/package.json index 2daa7e9..546be40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,8 @@ { "dependencies": { "@tailwindcss/cli": "^4.1.7", - "tailwindcss": "^4.1.7" + "autoprefixer": "^10.4.21", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.10" } } diff --git a/src/components/bottom_sheet_menu.rs b/src/components/bottom_sheet_menu.rs new file mode 100644 index 0000000..9c64e2a --- /dev/null +++ b/src/components/bottom_sheet_menu.rs @@ -0,0 +1,135 @@ +use crate::Route; +use dioxus::prelude::*; + +#[component] +pub fn BottomSheetMenu(show: bool, on_close: EventHandler<()>) -> Element { + rsx! { + // Overlay - positioned behind the menu + if show { + div { + class: "bottom-sheet-overlay", + onclick: move |_| on_close.call(()), + } + } + + // Menu Body + div { + class: format_args!( + "bottom-sheet-menu {}", + if show { "visible" } else { "hidden" } + ), + onclick: move |evt| { + evt.stop_propagation(); + }, + + // Menu Header + div { + class: "menu-header", + label { + class: "flex items-center", + div { + class: "menu-handle" + } + } + p { + class: "menu-title", + "Menu" + } + button { + class: "menu-close", + onclick: move |_| on_close.call(()), + title: "Close", + div { + class: "menu-close-icon" + } + } + } + + // Menu Links + div { + class: "menu-links", + Link { + class: "menu-link", + to: Route::Home{}, + "Home" + } + Link { + class: "menu-link", + to: Route::Skills {}, + "Skills" + } + Link { + class: "menu-link", + to: Route::Experiences{}, + "Experiences" + } + } + + // Menu Contact + div { + class: "menu-contact", + a { + class: "menu-contact-item", + href: "tel:+639", + svg { + class: "menu-contact-icon", + xmlns: "http://www.w3.org/2000/svg", + fill: "currentColor", + height: "24", + view_box: "0 0 24 24", + width: "24", + path { + d: "M0 0h24v24H0z", + fill: "none" + } + path { + d: "M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" + } + } + span { + "Call" + } + } + a { + class: "menu-contact-item", + href: "mailto:portfolio.dc@sent.com", + svg { + class: "menu-contact-icon", + xmlns: "http://www.w3.org/2000/svg", + fill: "currentColor", + height: "24", + view_box: "0 0 24 24", + width: "24", + path { + d: "M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z" + } + path { + d: "M0 0h24v24H0z", + fill: "none" + } + } + span { + "Email" + } + } + } + } + } +} + +#[component] +pub fn QuickMenuButton(on_click: EventHandler<()>) -> Element { + rsx! { + button { + class: "quick-menu-button", + onclick: move |_| on_click.call(()), + div { + class: "quick-menu-hamburger", + div { + class: "quick-menu-hamburger-line" + } + } + "Quick Menu" + } + } +} diff --git a/src/components/experience_list.rs b/src/components/experience_list.rs new file mode 100644 index 0000000..41c3888 --- /dev/null +++ b/src/components/experience_list.rs @@ -0,0 +1,271 @@ +use crate::components::{ + skill_data::{self}, + Skill, SkillDisplayMode, SkillList, +}; +use dioxus::prelude::*; + +#[derive(Clone, Debug)] +struct Experience { + title: &'static str, + company: &'static str, + location: &'static str, + employment_type: &'static str, + start_date: &'static str, + end_date: &'static str, + duration: &'static str, + description: &'static str, + skills: Vec, + border_color: &'static str, + drop_color: &'static str, + bg_color: &'static str, +} + +#[component] +pub fn ExperienceList() -> Element { + let experiences = vec![ + Experience { + title: " Senior Full Stack Developer ", + company: "Startechup Inc.", + location: "Cebu, Philippines ", + employment_type: "Full Time ", + start_date: " September 2022", + end_date: "Present", + duration: " 2 yrs & 10 months", + description: "Successfully managed projects on schedule, optimized AWS for 50% cost savings, modernized backend systems, enhanced security, and promoted technical excellence through mentoring and code reviews.", + skills: vec![ + skill_data::php_skill(), + skill_data::python_skill(), + skill_data::sql_skill(), + skill_data::html_skill(), + skill_data::css_skill(), + skill_data::javascript_skill(), + skill_data::laravel_skill(), + skill_data::fastapi_skill(), + skill_data::tailwindcss_skill(), + skill_data::aws_skill(), + skill_data::gcp_skill(), + skill_data::git_skill(), + skill_data::docker_skill(), + skill_data::terraform_skill(), + ], + border_color: "#EF5A6A", + drop_color: "#EF5A6A", + bg_color: "#EF5A6A", + }, + Experience { + title: "Technical Lead/Full Stack Developer", + company: "Herohub Inc.", + location: "San Juan, Philippines", + employment_type: "Full Time", + start_date: "April 2017", + end_date: "January 2021", + duration: "3 yrs & 10 months ", + description: "Aligned technology with business goals, implemented low-code platforms for rapid app development, maintained core infrastructure, mentored teams, and collaborated on the long-term roadmap.", + skills: vec![ + skill_data::javascript_skill(), + skill_data::php_skill(), + skill_data::sql_skill(), + skill_data::html_skill(), + skill_data::css_skill(), + skill_data::laravel_skill(), + skill_data::reactjs_skill(), + skill_data::bootstrap_skill(), + skill_data::semanticui_skill(), + skill_data::aws_skill(), + skill_data::gcp_skill(), + skill_data::git_skill(), + skill_data::outsystem_skill(), + skill_data::plsql_skill(), + skill_data::docker_skill(), + ], + border_color: "#E88F4D", + drop_color: "#E88F4D", + bg_color: "#E88F4D", + }, + Experience { + title: "Full Stack Developer", + company: "Fountainhead Technologies Inc.", + location: "Quezon City, Philippines", + employment_type: "Full Time", + start_date: "December 2013", + end_date: "January 2017", + duration: "3 yrs & 2 months ", + description: "Managed and motivated developers for project success. Handled large SQL databases, owned the development lifecycle, gathered requirements, created flow proposals, coded and tested modules, and integrated APIs.", + skills: vec![ + skill_data::javascript_skill(), + skill_data::php_skill(), + skill_data::sql_skill(), + skill_data::html_skill(), + skill_data::css_skill(), + skill_data::laravel_skill(), + skill_data::reactjs_skill(), + skill_data::bootstrap_skill(), + skill_data::semanticui_skill(), + skill_data::aws_skill(), + skill_data::git_skill(), + skill_data::phaserio_skill(), + skill_data::plsql_skill(), + skill_data::sass_skill(), + ], + border_color: "#7CB768", + drop_color: "#7CB768", + bg_color: "#7CB768", + }, + Experience { + title: "Web Developer", + company: "Mindblow Internet Ideas", + location: "Mandaluyong, Philippines", + employment_type: "Full Time", + start_date: "May 2012", + end_date: "August 2013", + duration: "1 yr & 4 months ", + description: "Participated in client meetings to understand project requirements. Managed small-to-medium projects, including CMS and e-commerce deployments, integrated APIs, collaborated with teams, trained interns, and applied SEO best practices", + skills: vec![ + skill_data::javascript_skill(), + skill_data::php_skill(), + skill_data::sql_skill(), + skill_data::html_skill(), + skill_data::css_skill(), + skill_data::codeigniter_skill(), + skill_data::bootstrap_skill(), + ], + border_color: "#4EA232", + drop_color: "#4EA232", + bg_color: "#4EA232", + }, + ]; + + rsx! { + div { + class: "col items-center relative mt-10 flex-1", + + // Vertical timeline line + // div { + // class: "w-[0.5px] hidden lg:flex top-0 bottom-0 py-50px bg-[var(--border)] absolute rounded justify-center " + // } + + // Experience Items + for (index, experience) in experiences.iter().enumerate() { + div { + class: "relative items-center w-full my-[10px]", + + // Left/Right spacer + div { + class: "flex-1 hidden lg:flex timeline-spacer ", + style: "flex: 0 0 15%;" + } + + // Timeline dot + // div { + // class: "hidden lg:inline p-15px bg-[var(--main)] rounded ", + // i { + // class: "i-carbon-condition-point " + // } + // } + + // Experience Card + div { + class: "experience-card ", + style: format!("--border-hover: {}", experience.border_color), + // Header section with avatar and title + div { + class: "flex items-start gap-4", + + // Avatar + // div { + // class: "experience-avatar ", + // div { + // class: "experience-avatar-inner " + // } + // } + + // Content + div { + class: "col ml-0 md:ml-[20px] gap-3 w-full ", + + // Title + div { + class: "col", + h2 { + class: "flex text-[2em] flex-col items-start sm:flex-row sm:items-center justify-between sm:gap-5 md:flex-col md:items-start md:gap-0 lg:flex-row lg:items-center bold", + h2 { + class: "font-[var(--title-f)] text-2em bold", + "{experience.title}" + } + } + } + + // Company, Location, Type tags + div { + class: "flex flex-wrap gap-2 mb-3", + + // Company tag + span { + class: "flex items-center gap-1 px-2 py-1 bg-[var(--secondary)] border border-[var(--border)] rounded text-xs text-[var(--secondary-text)]", + i { class: "i-carbon-building text-xs " } + span { "{experience.company}" } + } + + // Location tag + span { + class: "flex items-center gap-1 px-2 py-1 bg-[var(--secondary)] border border-[var(--border)] rounded text-xs text-[var(--secondary-text)]", + i { class: "i-carbon-location text-xs " } + span { "{experience.location}" } + } + + // Employment type tag + span { + class: "flex items-center gap-1 px-2 py-1 bg-[var(--secondary)] border border-[var(--border)] rounded text-xs text-[var(--secondary-text)]", + i { class: "i-carbon-user text-xs " } + span { "{experience.employment_type}" } + } + } + + // Date and duration info + div { + class: "text-[var(--text)] text-[0.9em]", + + // Date range + div { + class: "row items-center gap-2", + i { class: "i-carbon-calendar text-1.25em" } + "{experience.start_date} - {experience.end_date}" + } + + div { + class: "bg-[var(--border)] h-1px m-y-10px" + } + + // Duration + div { + class: "row items-center gap-2", + i { class: "i-carbon-time text-1.25em" } + "{experience.duration}" + } + + div { + class: "bg-[var(--border)] h-1px m-y-10px" + } + } + + // Description + div { + class: "experience-description text-[0.9em] mb-4 mt-4", + "{experience.description}" + } + + // Skills + if !experience.skills.is_empty() { + SkillList { + skills: experience.skills.clone(), + display_mode: SkillDisplayMode::Chips + } + } + } + } + } + } + } + } + } +} diff --git a/src/components/hero.rs b/src/components/hero.rs index c9f6965..79a2ed0 100644 --- a/src/components/hero.rs +++ b/src/components/hero.rs @@ -3,73 +3,60 @@ use dioxus::prelude::*; #[component] pub fn Hero() -> Element { rsx! { - // We can create elements inside the rsx macro with the element name followed by a block of attributes and children. - div { - class: "content container mb6t29", - div { - class: "col self-center flex-1 md:flex-row md:self-stretch justify-center lg:justify-between items-center p-y-0px p-x-10px", - div { - class: "md:flex-1 gap-10px", + div { class: "content container p-15 mt-10", + div { class: "flex", + div { class: "grid content-center md:flex-1", h1 { - class: "font-[var(--title-f)] font-black tracking-[4px] text-center text-2.5em sm:text-[3em] md:text-[3.5em] lg:text-[4em] md:text-left", + class: "font-[var(--title-f)] font-black tracking-[4px] text-center text-4em lg:text-[4em] md:text-left", style: "background-image: ; background-position-x: ; background-position-y: ; background-size: ; background-repeat: ; background-attachment: ; background-origin: ; background-clip: text; background-color: ; -webkit-background-clip: text;", "Danilo" " " "Cesa" } - p { + p { class: "text-[var(--tertiary-text)] text-center md:text-left text-[1.2em] font-extralight", - "Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti, rerum. Debitis accusantium deleniti enim iste dignissimos? Similique, exercitationem! Odit vero, numquam quae ratione maxime sunt reiciendis laudantium quaerat iure ipsum!" + "Dynamic Full Stack Developer with over a decade of experience in + analyzing, designing, developing, and implementing a wide range of + software applications. Proven track record in architecting and + managing systems. Experienced software development lifecycle + and end-to-end project, from concept through to development and + delivery. + " + } + } + } + div { class: "row justify-center md:justify-start p-y-15px p-x-0px gap-2", + a { + class: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md transition duration-300", + target: "_blank", + href: "https://www.linkedin.com/in/danilocesajr", + svg { + class: "inline-block", + view_box: "0 0 24 24", + fill: "var(--accent-text)", + height: "20px", + width: "20px", + path { + d: "M20.5 2h-17A1.5 1.5 0 002 3.5v17A1.5 1.5 0 003.5 22h17a1.5 1.5 0 001.5-1.5v-17A1.5 1.5 0 0020.5 2zM8 19H5v-9h3zM6.5 8.25A1.75 1.75 0 118.3 6.5a1.78 1.78 0 01-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0013 14.19a.66.66 0 000 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 012.7-1.4c1.55 0 3.36.86 3.36 3.66z" + } + } + } + a { + class: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md transition duration-300", + target: "_blank", + href: "https://gitea.dcesa.cc", + svg { + class: "inline-block", + view_box: "0 0 16 16", + fill: "var(--accent-text)", + height: "20px", + width: "20px", + path { + d: "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" + } } } - // h1 { - // class: "text-4xl md:text-6xl font-bold mb-4", - // "Hey, I'm Dan" - // } - // p { - // class: "text-lg md:text-xl text-gray-400", - // "Full Stack Developer" - // } } - // div { - // class: "p-4 rounded-lg hover:border-cyan-500 transition duration-300", - // p { - // class: "text-gray-400", - // "I'm a passionate software developer with a background in computer science and a keen interest in frontend technologies." - // } - // } - // div { - // class: "row justify-center md:justify-start p-y-15px p-x-0px gap-2", - // a { - // class: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md transition duration-300", - // href: "#contact", - // svg { - // class: "inline-block", - // view_box: "0 0 24 24", - // fill: "var(--accent-text)", - // height: "20px", - // width: "20px", - // path { - // d: "M20.5 2h-17A1.5 1.5 0 002 3.5v17A1.5 1.5 0 003.5 22h17a1.5 1.5 0 001.5-1.5v-17A1.5 1.5 0 0020.5 2zM8 19H5v-9h3zM6.5 8.25A1.75 1.75 0 118.3 6.5a1.78 1.78 0 01-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0013 14.19a.66.66 0 000 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 012.7-1.4c1.55 0 3.36.86 3.36 3.66z" - // } - // } - // } - // a { - // class: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md transition duration-300", - // href: "#contact", - // svg { - // class: "inline-block", - // view_box: "0 0 16 16", - // fill: "var(--accent-text)", - // height: "20px", - // width: "20px", - // path { - // d: "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" - // } - // } - // } - // } - } } } diff --git a/src/components/mod.rs b/src/components/mod.rs index 898df57..54657b1 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -7,3 +7,15 @@ pub use hero::Hero; // mod echo; // pub use echo::Echo; + +mod bottom_sheet_menu; +pub use bottom_sheet_menu::{BottomSheetMenu, QuickMenuButton}; + +mod experience_list; +pub use experience_list::ExperienceList; + +mod skill_components; +pub use skill_components::{ + skill_data, Skill, SkillCard, SkillCategory, SkillCategorySection, SkillChip, SkillDisplayMode, + SkillList, +}; diff --git a/src/components/skill_components.rs b/src/components/skill_components.rs new file mode 100644 index 0000000..f9081ae --- /dev/null +++ b/src/components/skill_components.rs @@ -0,0 +1,538 @@ +use dioxus::prelude::*; + +// Skill data structure +#[derive(Clone, Debug, PartialEq)] +pub struct Skill { + pub name: &'static str, + pub abbreviation: &'static str, + pub image: Option, + pub bg_color: &'static str, + pub border_color: &'static str, + pub drop_color: &'static str, +} + +// Skill category structure +#[derive(Clone, Debug, PartialEq)] +pub struct SkillCategory { + pub name: &'static str, + pub skills: Vec, +} + +// Individual skill card component for the skills page +#[component] +pub fn SkillCard(skill: Skill) -> Element { + rsx! { + a { + class: "card text-inherit decoration-none inline-flex flex-col border-1 border-solid border-[var(--border)] rounded-lg duration relative cursor-pointer decoration-none d1441skb", + style: format!( + "margin: 0px; --bg-img: url({}); --border-color: {}; --drop-color: {}; --bg-color: {};", + skill.image.map(|img| img.to_string()).unwrap_or_default(), + skill.border_color, + skill.drop_color, + skill.bg_color + ), + div { + class: "card-bg-img flex-1 flex flex-col p-5 rounded-lg d1441skb", + div { + class: "text-[var(--tertiary-text)]", + "{skill.name}" + } + } + } + } +} + +// Small skill chip component for experience cards +#[component] +pub fn SkillChip(skill: Skill) -> Element { + rsx! { + div { + class: "skill-chip", + style: format!("background-color: {}", skill.bg_color), + title: "{skill.name}", + "{skill.abbreviation}" + } + } +} + +// Skill list component for displaying multiple skills +#[component] +pub fn SkillList(skills: Vec, display_mode: SkillDisplayMode) -> Element { + let sorted_skills = match display_mode { + SkillDisplayMode::Chips => { + let mut skills = skills; + skills.sort_by(|a, b| a.abbreviation.len().cmp(&b.abbreviation.len())); + skills + } + _ => skills, + }; + + rsx! { + div { + class: match display_mode { + SkillDisplayMode::Grid => "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2 md:gap-3 lg:gap-5 mt-5", + SkillDisplayMode::Chips => "experience-skills", + }, + for skill in sorted_skills { + match display_mode { + SkillDisplayMode::Grid => rsx! { SkillCard { skill: skill } }, + SkillDisplayMode::Chips => rsx! { SkillChip { skill: skill } }, + } + } + } + } +} + +// Skill category component for the skills page +#[component] +pub fn SkillCategorySection(category: SkillCategory) -> Element { + rsx! { + div { + class: "col gap-5 mb-7", + div { + class: "flex row items-center gap-5", + div { class: "bg-[var(--main-hover)] h-[1px] w-[20px]" } + p { + class: "text-[var(--main-close)]", + "{category.name}" + } + div { class: "flex-1 bg-[var(--main-hover)] h-[1px]" } + } + SkillList { + skills: category.skills, + display_mode: SkillDisplayMode::Grid + } + } + } +} + +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum SkillDisplayMode { + Grid, // For skills page + Chips, // For experience cards +} + +// Skill data constants and helper functions +pub mod skill_data { + use super::*; + + // Image assets + const JS_IMAGE: Asset = asset!("/assets/images/js.png"); + const PHP_IMAGE: Asset = asset!("/assets/images/php.jpg"); + const PYTHON_IMAGE: Asset = asset!("/assets/images/python-logo.png"); + const SQL_IMAGE: Asset = asset!("/assets/images/sql-logo.jpg"); + const PLSQL_IMAGE: Asset = asset!("/assets/images/plsql-logo.png"); + const RUST_IMAGE: Asset = asset!("/assets/images/rust-logo.png"); + const AUTO_IT_IMAGE: Asset = asset!("/assets/images/autoit-logo.jpg"); + const HTML_IMAGE: Asset = asset!("/assets/images/html-logo.png"); + const CSS_IMAGE: Asset = asset!("/assets/images/css-logo.png"); + const SASS_IMAGE: Asset = asset!("/assets/images/sass-logo.png"); + const LARAVEL_IMAGE: Asset = asset!("/assets/images/laravel-logo.png"); + const CODEIGNITER_IMAGE: Asset = asset!("/assets/images/codeigniter-logo.png"); + const REACTJS_IMAGE: Asset = asset!("/assets/images/reactjs-logo.png"); + const SVELTE_IMAGE: Asset = asset!("/assets/images/svelte-logo.png"); + const D3JS_IMAGE: Asset = asset!("/assets/images/d3js-logo.png"); + const PHASERIO_IMAGE: Asset = asset!("/assets/images/phaser-logo.png"); + const FASTAPI_IMAGE: Asset = asset!("/assets/images/fastapi-logo.jpg"); + const DIOXUS_IMAGE: Asset = asset!("/assets/images/dioxus-logo.png"); + const TAILWINDCSS_IMAGE: Asset = asset!("/assets/images/tailwindcss-logo.png"); + const BOOTSTRAP_IMAGE: Asset = asset!("/assets/images/bootstrap-logo.png"); + const SEMANTICUI_IMAGE: Asset = asset!("/assets/images/semanticui-logo.png"); + const AWS_IMAGE: Asset = asset!("/assets/images/aws-logo.png"); + const GCP_IMAGE: Asset = asset!("/assets/images/gcp-logo.png"); + const OVH_IMAGE: Asset = asset!("/assets/images/ovh-logo.png"); + const CLOUDFLARE_IMAGE: Asset = asset!("/assets/images/cloudflare-logo.png"); + const GIT_IMAGE: Asset = asset!("/assets/images/git-logo.png"); + const DOCKER_IMAGE: Asset = asset!("/assets/images/docker-logo.png"); + const OUTSYSTEMS_IMAGE: Asset = asset!("/assets/images/outsystems-logo.png"); + const TERRAFORM_IMAGE: Asset = asset!("/assets/images/terraform-logo.png"); + + // Helper function to get skill by name/abbreviation + pub fn get_skill_by_name(name: &str) -> Option { + match name.to_lowercase().as_str() { + "javascript" | "js" => Some(javascript_skill()), + "html" => Some(html_skill()), + "css" => Some(css_skill()), + "php" => Some(php_skill()), + "python" => Some(python_skill()), + "sql" => Some(sql_skill()), + "rust" => Some(rust_skill()), + "laravel" => Some(laravel_skill()), + _ => None, + } + } + + // Programming + pub fn javascript_skill() -> Skill { + Skill { + name: "JAVASCRIPT", + abbreviation: "JS", + image: Some(JS_IMAGE), + bg_color: "#f7df1e", + border_color: "#f7df1e80", + drop_color: "#f7df1e26", + } + } + + pub fn php_skill() -> Skill { + Skill { + name: "PHP", + abbreviation: "PHP", + image: Some(PHP_IMAGE), + bg_color: "#777bb4", + border_color: "#777bb480", + drop_color: "#777bb426", + } + } + + pub fn python_skill() -> Skill { + Skill { + name: "PYTHON", + abbreviation: "PY", + image: Some(PYTHON_IMAGE), + bg_color: "#3776ab", + border_color: "#3776ab80", + drop_color: "#3776ab26", + } + } + + pub fn rust_skill() -> Skill { + Skill { + name: "RUST", + abbreviation: "RS", + image: Some(RUST_IMAGE), + bg_color: "#ce422b", + border_color: "#ce422b80", + drop_color: "#ce422b26", + } + } + + pub fn sql_skill() -> Skill { + Skill { + name: "SQL", + abbreviation: "SQL", + image: Some(SQL_IMAGE), + bg_color: "#336791", + border_color: "#33679180", + drop_color: "#33679126", + } + } + + pub fn plsql_skill() -> Skill { + Skill { + name: "PL/SQL", + abbreviation: "PLSQL", + image: Some(PLSQL_IMAGE), + bg_color: "#d6393c", + border_color: "#d6393c", + drop_color: "#d6393c", + } + } + + pub fn autoit_skill() -> Skill { + Skill { + name: "AUTO IT", + abbreviation: "AIT", + image: Some(AUTO_IT_IMAGE), + bg_color: "#ffff0003", + border_color: "#ffff0080", + drop_color: "#ffff0026", + } + } + + // Markup & Style + pub fn html_skill() -> Skill { + Skill { + name: "HTML", + abbreviation: "HTML", + image: Some(HTML_IMAGE), + bg_color: "#e34f26", + border_color: "#e34f2680", + drop_color: "#e34f2626", + } + } + + pub fn css_skill() -> Skill { + Skill { + name: "CSS", + abbreviation: "CSS", + image: Some(CSS_IMAGE), + bg_color: "#1572b6", + border_color: "#1572b680", + drop_color: "#1572b626", + } + } + + pub fn sass_skill() -> Skill { + Skill { + name: "SASS", + abbreviation: "SASS", + image: Some(SASS_IMAGE), + bg_color: "#B755B1", + border_color: "#B755B1", + drop_color: "#B755B1", + } + } + + //Frameworks + pub fn laravel_skill() -> Skill { + Skill { + name: "LARAVEL", + abbreviation: "LARAVEL", + image: Some(LARAVEL_IMAGE), + bg_color: "#f53003", + border_color: "#f53003", + drop_color: "#f53003", + } + } + + pub fn codeigniter_skill() -> Skill { + Skill { + name: "CODEIGNITER", + abbreviation: "CI", + image: Some(CODEIGNITER_IMAGE), + bg_color: "#dd4814", + border_color: "#dd4814", + drop_color: "#dd4814", + } + } + + pub fn reactjs_skill() -> Skill { + Skill { + name: "REACTJS", + abbreviation: "REACTJS", + image: Some(REACTJS_IMAGE), + bg_color: "#2D89C9", + border_color: "#2D89C9", + drop_color: "#2D89C9", + } + } + + pub fn svelte_skill() -> Skill { + Skill { + name: "SVELTE", + abbreviation: "SVELTE", + image: Some(SVELTE_IMAGE), + bg_color: "#FF5100", + border_color: "#FF5100", + drop_color: "#FF5100", + } + } + + pub fn d3js_skill() -> Skill { + Skill { + name: "D3.JS", + abbreviation: "D3.JS", + image: Some(D3JS_IMAGE), + bg_color: "#FF7D00", + border_color: "#FF7D00", + drop_color: "#FF7D00", + } + } + + pub fn phaserio_skill() -> Skill { + Skill { + name: "PHASER.IO", + abbreviation: "PHASER.IO", + image: Some(PHASERIO_IMAGE), + bg_color: "#62eff7", + border_color: "#62eff7", + drop_color: "#62eff7", + } + } + + pub fn fastapi_skill() -> Skill { + Skill { + name: "FAST API", + abbreviation: "FASTAPI", + image: Some(FASTAPI_IMAGE), + bg_color: "#009485", + border_color: "#009485", + drop_color: "#009485", + } + } + + pub fn dioxus_skill() -> Skill { + Skill { + name: "DIOXUS", + abbreviation: "DIOXUS", + image: Some(DIOXUS_IMAGE), + bg_color: "#EF7E2B", + border_color: "#EF7E2B", + drop_color: "#EF7E2B", + } + } + + pub fn tailwindcss_skill() -> Skill { + Skill { + name: "TAILWIND CSS", + abbreviation: "TAILWINDCSS", + image: Some(TAILWINDCSS_IMAGE), + bg_color: "#4CADDC", + border_color: "#4CADDC", + drop_color: "#4CADDC", + } + } + + pub fn bootstrap_skill() -> Skill { + Skill { + name: "BOOTSTRAP", + abbreviation: "BOOTSTRAP", + image: Some(BOOTSTRAP_IMAGE), + bg_color: "#922BEF", + border_color: "#922BEF", + drop_color: "#922BEF", + } + } + + pub fn semanticui_skill() -> Skill { + Skill { + name: "SEMANTIC UI", + abbreviation: "SEMANTIC_UI", + image: Some(SEMANTICUI_IMAGE), + bg_color: "#15B5B9", + border_color: "#15B5B9", + drop_color: "#15B5B9", + } + } + + // Cloud Platforms + pub fn aws_skill() -> Skill { + Skill { + name: "AMAZON (AWS)", + abbreviation: "AWS", + image: Some(AWS_IMAGE), + bg_color: "#EC8439", + border_color: "#EC8439", + drop_color: "#EC8439", + } + } + + pub fn gcp_skill() -> Skill { + Skill { + name: "GOOGLE CLOUD PLATFORM", + abbreviation: "GCP", + image: Some(GCP_IMAGE), + bg_color: "#3984EC", + border_color: "#3984EC", + drop_color: "#3984EC", + } + } + + pub fn ovh_skill() -> Skill { + Skill { + name: "OVHCLOUD", + abbreviation: "OVH", + image: Some(OVH_IMAGE), + bg_color: "#1537B9", + border_color: "#1537B9", + drop_color: "#1537B9", + } + } + + pub fn cloudflare_skill() -> Skill { + Skill { + name: "CLOUDFLARE", + abbreviation: "CF", + image: Some(CLOUDFLARE_IMAGE), + bg_color: "#ea9f2e", + border_color: "#ea9f2e", + drop_color: "#ea9f2e", + } + } + + pub fn git_skill() -> Skill { + Skill { + name: "GIT", + abbreviation: "GIT", + image: Some(GIT_IMAGE), + bg_color: "#DE570D", + border_color: "#DE570D", + drop_color: "#DE570D", + } + } + + pub fn docker_skill() -> Skill { + Skill { + name: "DOCKER", + abbreviation: "DOCKER", + image: Some(DOCKER_IMAGE), + bg_color: "#1F95DA", + border_color: "#1F95DA", + drop_color: "#1F95DA", + } + } + + pub fn outsystem_skill() -> Skill { + Skill { + name: "OUTSYSTEMS", + abbreviation: "OUTSYSTEMS", + image: Some(OUTSYSTEMS_IMAGE), + bg_color: "#BD2031", + border_color: "#BD2031", + drop_color: "#BD2031", + } + } + + pub fn terraform_skill() -> Skill { + Skill { + name: "TERRAFORM", + abbreviation: "TF", + image: Some(TERRAFORM_IMAGE), + bg_color: "#8179ea", + border_color: "#8179ea", + drop_color: "#8179ea", + } + } + + // Get all skill categories for the skills page + pub fn get_all_skill_categories() -> Vec { + vec![ + SkillCategory { + name: "Programming Languages", + skills: vec![ + javascript_skill(), + php_skill(), + python_skill(), + sql_skill(), + plsql_skill(), + rust_skill(), + autoit_skill(), + ], + }, + SkillCategory { + name: "Markup & Style", + skills: vec![html_skill(), css_skill(), sass_skill()], + }, + SkillCategory { + name: "Frameworks", + skills: vec![ + laravel_skill(), + codeigniter_skill(), + reactjs_skill(), + svelte_skill(), + d3js_skill(), + phaserio_skill(), + fastapi_skill(), + dioxus_skill(), + tailwindcss_skill(), + bootstrap_skill(), + semanticui_skill(), + ], + }, + SkillCategory { + name: "Cloud Platforms", + skills: vec![aws_skill(), gcp_skill(), ovh_skill(), cloudflare_skill()], + }, + SkillCategory { + name: "Other Tools", + skills: vec![ + git_skill(), + docker_skill(), + outsystem_skill(), + terraform_skill(), + ], + }, + ] + } +} diff --git a/src/main.rs b/src/main.rs index 9e63a00..37fa713 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,7 +2,7 @@ // need dioxus use dioxus::prelude::*; -use views::{Blog, Home, Navbar, Skills, Projects, Experiences}; +use views::{Blog, Experiences, Home, Navbar, Projects, Skills}; /// Define a components module that contains all shared components for our app. mod components; @@ -11,7 +11,7 @@ mod views; /// The Route enum is used to define the structure of internal routes in our app. All route enums need to derive /// the [`Routable`] trait, which provides the necessary methods for the router to work. -/// +/// /// Each variant represents a different URL pattern that can be matched by the router. If that pattern is matched, /// the components for that route will be rendered. #[derive(Debug, Clone, Routable, PartialEq)] @@ -43,14 +43,17 @@ enum Route { // We can import assets in dioxus with the `asset!` macro. This macro takes a path to an asset relative to the crate root. // The macro returns an `Asset` type that will display as the path to the asset in the browser or a local path in desktop bundles. -const FAVICON: Asset = asset!("/assets/favicon.ico"); +const FAVICON: Asset = asset!("/assets/favicon/favicon.ico"); +const FAVICON_16: Asset = asset!("/assets/favicon/favicon-16x16.png"); +const FAVICON_32: Asset = asset!("/assets/favicon/favicon-32x32.png"); +const FAVICON_APPLE: Asset = asset!("/assets/favicon/apple-touch-icon.png"); +const FAVICON_MANIFEST: Asset = asset!("/assets/favicon/site.webmanifest"); // The asset macro also minifies some assets like CSS and JS to make bundled smaller -const TAILWIND_CSS: Asset = asset!("/assets/tailwind.css"); -const MEDIA_CSS: Asset = asset!("/assets/styling/media.css"); +const TAILWIND_CSS: Asset = asset!("/assets/styling/tailwind.css"); +// const MEDIA_CSS: Asset = asset!("/assets/styling/media.css"); const MAIN_CSS: Asset = asset!("/assets/styling/main.css"); const ICONS_CSS: Asset = asset!("/assets/styling/icons.css"); - fn main() { // The `launch` function is the main entry point for a dioxus app. It takes a component and renders it with the platform feature // you have enabled @@ -68,16 +71,21 @@ fn App() -> Element { rsx! { // In addition to element and text (which we will see later), rsx can contain other components. In this case, // we are using the `document::Link` component to add a link to our favicon and main CSS file into the head of our app. + document::Link { rel: "apple-touch-icon", sizes: "180x180", href:FAVICON_APPLE} document::Link { rel: "icon", href: FAVICON } - document::Link { rel: "stylesheet", href: TAILWIND_CSS } - document::Link { rel: "stylesheet", href: MEDIA_CSS } - document::Link { rel: "stylesheet", href: MAIN_CSS } - document::Link { rel: "stylesheet", href: ICONS_CSS } + document::Link { rel: "icon", href: FAVICON_16, sizes:"16x16" } + document::Link { rel: "icon", href: FAVICON_32, sizes:"32x32" } + document::Link { rel: "icon", href: FAVICON_MANIFEST} + + document::Stylesheet { rel: "stylesheet", href: TAILWIND_CSS } + // document::Link { rel: "stylesheet", href: MEDIA_CSS } + document::Stylesheet { rel: "stylesheet", href: MAIN_CSS } + document::Stylesheet { rel: "stylesheet", href: ICONS_CSS } // The router component renders the route enum we defined above. It will handle synchronization of the URL and render // the layouts and components for the active route. div { - class: "body contents mb6t29", + class: "body", "data-Theme": if is_dark_theme { "dark" } else { "light" }, Router:: {} } diff --git a/src/views/experiences.rs b/src/views/experiences.rs index aae7112..66a3561 100644 --- a/src/views/experiences.rs +++ b/src/views/experiences.rs @@ -1,138 +1,35 @@ +use crate::components::ExperienceList; use crate::Route; -use dioxus::{html::{div, input}, prelude::*}; +use dioxus::prelude::*; -// const SKILL_CSS: Asset = asset!("/assets/styling/blog.css"); +const EXPERIENCE_CSS: Asset = asset!("/assets/styling/experience.css"); #[component] pub fn Experiences() -> Element { rsx! { - div { - class: "content container mb6t29", + document::Stylesheet { href: EXPERIENCE_CSS } + + div { + class: "content", div { class: "flex-1 col gap-5 px-2 sm:px-4 md:px-6 py-4 sm:py-8 md:py-12", + + // Header h1 { class: "font-[var(--title-f)] font-black tracking-[4px] text-center text-2.5em sm:text-[3em] md:text-[3.5em] lg:text-[4em]", - "Experiences" + "Experience" } - - div { - class: "col gap-5 flex-1", - div { class: "w-100% col flex-1", - div { class:"col items-center relative mt-10 flex-1", - div {class:"w-[0.5px] hidden lg:flex top-0 bottom-0 py-50px bg-[var(--border)] absolute rounded"} - div { class: "flex flex-row-reverse relative items-center w-full my-[10px]", - div { class: "flex-1 hidden lg:flex"} - div { class: "hidden lg:inline p-15px bg-[var(--main)] rounded", - i { class: "i-carbon-condition-point"} - } - div { class:" flex-1 col items-stretch", - a { class:" card text-inherit decoration-none inline-flex flex-col border-1px border-solid border-[var(--border)] rounded-15px duration relative d1441skb", - style:" margin: 0px 0px 20px; --border-color: #ff000080; --drop-color: #ff000026; --bg-color: #ff000003;", - div { class: "card-bg-img flex-1 flex flex-col p-25px rounded-15px d1441skb", - div { class: "col md:flex-row items-start gap-5 md:gap-1", - div{ class: "col ml-0 md:ml-[20px] gap-3 w-full", - div { class: "col ", - h3 { class: "flex text-[0.9em] flex-col items-start sm:flex-row sm:items-center justify-between sm:gap-5 md:flex-col md:items-start md:gap-0 lg:flex-row lg:items-center", - h3 { class: "font-[var(--title-f)] text-1.25em", - "Experience 1" - } - } - } - - div {class: "text-[var(--text)] text-[0.9em]", - div {class: "row items-center gap-2", - i { class: "i-carbon-calendar text-1.25em"} - "Jan 2025 - Present" - } - - div { class: "bg-[var(--border)] h-1px m-y-10px"} - - div { class: "row items-center gap-2", - i { class: "i-carbon-time text-1.25em" } - "4 Years" - } - - div { class: "bg-[var(--border)] h-1px m-y-10px"} - } - - div { class: "experience-description text-[0.9em]", - "Creating awesome tools for developers." - } - - div { class: "flex flex-row flex-wrap mt-5", - a { class: "chip-icon row-center relative text-inherit decoration-none p-10px m-r-5px m-b-5px border-1px border-solid border-[var(--border)] hover:border-[var(--border-hover)] rounded-10px hover:z-5 cursor-pointer grayscale-65 hover:grayscale-0 d1m94jop", - "data-Help": "Rust", - img {class: "w-15px h-15px d1m94jop", - alt: "Rust" - } - } - } - } - } - } - } - } - } - - div { class: "flex flex-row relative items-center w-full my-[10px]", - div { class: "flex-1 hidden lg:flex"} - div { class: "hidden lg:inline p-15px bg-[var(--main)] rounded", - i { class: "i-carbon-condition-point"} - } - div { class:" flex-1 col items-stretch", - a { class:" card text-inherit decoration-none inline-flex flex-col border-1px border-solid border-[var(--border)] rounded-15px duration relative d1441skb", - style:" margin: 0px 0px 20px; --border-color: #ff000080; --drop-color: #ff000026; --bg-color: #ff000003;", - div { class: "card-bg-img flex-1 flex flex-col p-25px rounded-15px d1441skb", - div { class: "col md:flex-row items-start gap-5 md:gap-1", - div{ class: "col ml-0 md:ml-[20px] gap-3 w-full", - div { class: "col ", - h3 { class: "flex text-[0.9em] flex-col items-start sm:flex-row sm:items-center justify-between sm:gap-5 md:flex-col md:items-start md:gap-0 lg:flex-row lg:items-center", - h3 { class: "font-[var(--title-f)] text-1.25em", - "Experience 1" - } - } - } - - div {class: "text-[var(--text)] text-[0.9em]", - div {class: "row items-center gap-2", - i { class: "i-carbon-calendar text-1.25em"} - "Jan 2025 - Present" - } - - div { class: "bg-[var(--border)] h-1px m-y-10px"} - - div { class: "row items-center gap-2", - i { class: "i-carbon-time text-1.25em" } - "4 Years" - } - - div { class: "bg-[var(--border)] h-1px m-y-10px"} - } - - div { class: "experience-description text-[0.9em]", - "Creating awesome tools for developers." - } - - div { class: "flex flex-row flex-wrap mt-5", - a { class: "chip-icon row-center relative text-inherit decoration-none p-10px m-r-5px m-b-5px border-1px border-solid border-[var(--border)] hover:border-[var(--border-hover)] rounded-10px hover:z-5 cursor-pointer grayscale-65 hover:grayscale-0 d1m94jop", - "data-Help": "Rust", - img {class: "w-15px h-15px d1m94jop", - alt: "Rust" - } - } - } - } - } - } - } - } - } - } + // Timeline Container + div { + class: "col gap-2 flex-1", + div { + class: "w-100% col flex-1", + ExperienceList {} } } } } Outlet:: {} } -} \ No newline at end of file +} diff --git a/src/views/navbar.rs b/src/views/navbar.rs index 08f637b..4489e3c 100644 --- a/src/views/navbar.rs +++ b/src/views/navbar.rs @@ -1,8 +1,10 @@ +use crate::components::{BottomSheetMenu, QuickMenuButton}; use crate::Route; use dioxus::prelude::*; +// use dioxus_logger::tracing::{Level, info}; + const NAVBAR_CSS: Asset = asset!("/assets/styling/navbar.css"); -const MAIN_CSS: Asset = asset!("/assets/styling/main.css"); /// The Navbar component that will be rendered on all pages of our app since every page is under the layout. /// @@ -11,39 +13,34 @@ const MAIN_CSS: Asset = asset!("/assets/styling/main.css"); /// routes will be rendered under the outlet inside this component #[component] pub fn Navbar() -> Element { + let mut show_menu = use_signal(|| false); rsx! { document::Link { rel: "stylesheet", href: NAVBAR_CSS } - + div { class: "nav-menu jdc7ud", nav { - class: "container flex flex-row items-center text-sm", + class: "container md:flex flex-row items-center text-sm hidden", Link { to: Route::Home {}, class: "nav-menu-left decoration-none w-auto md:w-150px lg:w-auto row flex flex-row items-center cursor-pointer px-4 text-[var(--secondary-text)] self-stretch hover:bg-[color:var(--main-hover)]", i { - class: "i-carbon-code text-2em" + class: "i-carbon-code" } - span { - class: "ml-2 text-md font-bold hidden md:inline overflow-hidden whitespace-nowrap text-ellipsis", + span { + class: "h2 ml-2 text-md font-bold hidden md:inline overflow-hidden whitespace-nowrap text-ellipsis", "Danilo" " " "Cesa" } } div { - class: "flex-1 block overflow-hidden md:hidden whitespace-nowrap text-ellipsis text-center", - "Danilo" - " " - "Cesa" - } - div { - class: "flex-row flex-1 self-center h-full justify-center hidden md:flex", + class: "flex-row flex-1 self-center h-full justify-center md:flex hidden", Link { to: Route::Skills {}, class: "nav-menu-item !text-[var(--secondary-text)] jdc7ud", i { - class: "i-carbon-software-resource-cluster text-1.3em" + class: "i-carbon-software-resource-cluster" } span { class: "nav-menu-item-label jdc7ud", @@ -51,17 +48,17 @@ pub fn Navbar() -> Element { } } - Link { - class: "nav-menu-item !text-[var(--secondary-text)] jdc7ud", - to: Route::Projects {}, - i { - class: "i-carbon-cube text-1.3em" - } - span { - class: "nav-menu-item-label jdc7ud", - "Projects" - } - } + // Link { + // class: "nav-menu-item !text-[var(--secondary-text)] jdc7ud", + // to: Route::Projects {}, + // i { + // class: "i-carbon-cube text-2em" + // } + // span { + // class: "nav-menu-item-label jdc7ud", + // "Projects" + // } + // } Link { class: "nav-menu-item !text-[var(--secondary-text)] jdc7ud", @@ -74,48 +71,23 @@ pub fn Navbar() -> Element { "Experiences" } } - - Link { - class: "nav-menu-item !text-[var(--secondary-text)] jdc7ud", - to: Route::Home {}, - i { - class: "i-carbon-result text-1.3em" - } - span { - class: "nav-menu-item-label jdc7ud", - "Resume" - } - } } - // div { - // class: "row h-full justify-center items-stretch m-l-auto md:m-l-0 w-auto md:w-150px gap-1 text-1.15em", - // div { - // class: "row hidden md:flex", - // // a { - // // class: "text-inherit col-center self-stretch px-2 hover:bg-[color:var(--main-hover)]" - // // } - // // button { - // // class: "bg-transparent text-1em border-none cursor-pointer hover:bg-[color:var(--main-hover)] text-[var(--secondary-text)] px-2", - // // i { - // // class: "i-carbon-moon" - // // } - // // } - // } - - // div { - // class: "col-center md:hidden h-full hover:bg-[var(--main-hover)] cursor-pointer", - // div { - // class: "nav-bar-mobile-btn col-center jdc7ud" - // } - // } - // } } } + if !show_menu() { + QuickMenuButton { + on_click: move |_| show_menu.set(true) + } + } + + // Bottom Sheet Menu + BottomSheetMenu { + show: show_menu(), + on_close: move |_| show_menu.set(false) + } - // The `Outlet` component is used to render the next component inside the layout. In this case, it will render either - // the [`Home`] or [`Blog`] component depending on the current route. Outlet:: {} } } diff --git a/src/views/projects.rs b/src/views/projects.rs index 3f54b39..495bfbd 100644 --- a/src/views/projects.rs +++ b/src/views/projects.rs @@ -1,12 +1,10 @@ use crate::Route; -use dioxus::{html::input, prelude::*}; - -// const SKILL_CSS: Asset = asset!("/assets/styling/blog.css"); +use dioxus::prelude::*; #[component] pub fn Projects() -> Element { rsx! { - div { + div { class: "content container mb6t29", div { class: "flex-1 col gap-5 px-2 sm:px-4 md:px-6 py-4 sm:py-8 md:py-12", @@ -14,10 +12,10 @@ pub fn Projects() -> Element { class: "font-[var(--title-f)] font-black tracking-[4px] text-center text-2.5em sm:text-[3em] md:text-[3.5em] lg:text-[4em]", "Projects" } - - div { + + div { class: "col gap-5 flex-1", - div { + div { class: "w-100% row", input { class: "text-[inherit] bg-transparent border-[1px] border-solid border-[var(--border)] px-[20px] py-[10px] rounded-[15px] flex-1 text-[1.15em] c0g44u", @@ -77,7 +75,7 @@ pub fn Projects() -> Element { div { class: "row flex-wrap", a { class: "chip-icon row-center relative text-inherit decoration-none p-10px m-r-5px m-b-5px border-1px border-solid border-[var(--border)] hover:border-[var(--border-hover)] rounded-10px hover:z-5 cursor-pointer grayscale-65 hover:grayscale-0 d1m94jop", img { class: "w-15px h-15px d1m94jop", - + } } } @@ -90,4 +88,4 @@ pub fn Projects() -> Element { } Outlet:: {} } -} \ No newline at end of file +} diff --git a/src/views/skills.rs b/src/views/skills.rs index cc13762..e21240d 100644 --- a/src/views/skills.rs +++ b/src/views/skills.rs @@ -1,68 +1,68 @@ +use crate::components::{skill_data, SkillCategorySection}; use crate::Route; -use dioxus::{html::input, prelude::*}; - -// const SKILL_CSS: Asset = asset!("/assets/styling/blog.css"); +use dioxus::prelude::*; #[component] pub fn Skills() -> Element { + let skill_categories = skill_data::get_all_skill_categories(); + let mut search_query = use_signal(|| String::new()); + + let filtered_categories = use_memo(move || { + let query = search_query.read().to_lowercase(); + if query.is_empty() { + skill_categories.clone() + } else { + skill_categories + .iter() + .map(|category| { + let filtered_skills: Vec<_> = category + .skills + .iter() + .filter(|skill| skill.name.to_lowercase().contains(&query)) + .cloned() + .collect(); + + crate::components::SkillCategory { + name: category.name, + skills: filtered_skills, + } + }) + .filter(|category| !category.skills.is_empty()) // Only show categories with matching skills + .collect() + } + }); + rsx! { - div { - class: "content container mb6t29", - div { - class: "flex-1 col gap-5 px-2 sm:px-4 md:px-6 py-4 sm:py-8 md:py-12", + div { class: "content", + div { class: "flex-1 col gap-5 px-2 sm:px-4 md:px-6 py-4 sm:py-8 md:py-12", h1 { class: "font-[var(--title-f)] font-black tracking-[4px] text-center text-2.5em sm:text-[3em] md:text-[3.5em] lg:text-[4em]", "Skills" } - - div { - class: "col gap-5 flex-1", - div { - class: "w-100% row", + + div { class: "flex-1", + div { class: "w-full row", input { - class: "text-[inherit] bg-transparent border-[1px] border-solid border-[var(--border)] px-[20px] py-[10px] rounded-[15px] flex-1 text-[1.15em] c0g44u", + class: "text-[inherit] bg-transparent border-[1px] border-solid border-[var(--border)] px-[20px] py-[10px] rounded-[15px] flex-1 text-[1.15em] w-full", type: "text", - placeholder: "Search skills..." + placeholder: "Search skills...", + value: "{search_query}", + oninput: move |event| { + search_query.set(event.value()); + } } } - div { class: "w-100% col flex-1", + div { class: "w-full col flex-1", div { class: "col mt-5 gap-7", - div { class: "col gap-5 mb-7", - div { class: "row items-center gap-5", - div { class: "bg-[var(--main-hover)] h-[1px] w-[20px]"} - p { - class: "text-[var(--main-close)]", - "Programming Languages" - } - div { class: "flex-1 bg-[var(--main-hover)] h-[1px]"} - } - + if filtered_categories().is_empty() && !search_query.read().is_empty() { div { - class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2 md:gap-3 lg:gap-5", - a { - class: "card text-inherit decoration-none inline-flex flex-col border-1px border-solid border-[var(--border)] rounded-15px duration relative cursor-pointer decoration-none d1441skb", - style: "margin: 0px; --bg-img: url(.png); --border-color: #ffff0080; --drop-color: #ffff0026; --bg-color: #ffff0003;", - div { - class: "card-bg-img flex-1 flex flex-col p-25px rounded-15px d1441skb", - div { - class: "text-[var(--tertiary-text)]", - "Javascript" - } - } - } - - a { - class: "card text-inherit decoration-none inline-flex flex-col border-1px border-solid border-[var(--border)] rounded-15px duration relative cursor-pointer decoration-none d1441skb", - style: "margin: 0px; --bg-img: url(.png); --border-color: #ffff0080; --drop-color: #ffff0026; --bg-color: #ffff0003;", - div { - class: "card-bg-img flex-1 flex flex-col p-25px rounded-15px d1441skb", - div { - class: "text-[var(--tertiary-text)]", - "PHP" - } - } - } + class: "text-center py-8 text-[var(--secondary-text)]", + "No skills found matching your search." + } + } else { + for category in filtered_categories() { + SkillCategorySection { category: category } } } } @@ -72,4 +72,4 @@ pub fn Skills() -> Element { } Outlet:: {} } -} \ No newline at end of file +} diff --git a/tailwind.config.js b/tailwind.config.js index 2a69d58..c3492d5 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,7 +1,7 @@ /** @type {import('tailwindcss').Config} */ module.exports = { mode: "all", - content: ["./src/**/*.{rs,html,css}", "./dist/**/*.html"], + content: ["./src/**/*.{rs,html,css}", "./assets/**/*.{css,png,jpeg,jpg}"], theme: { extend: {}, },