diff --git a/.gitignore b/.gitignore index 0ac18775..1211cf7e 100644 --- a/.gitignore +++ b/.gitignore @@ -38,8 +38,7 @@ yarn-error.log* *.tsbuildinfo .pnpm-store/ -package-lock.json -!landing/package-lock.json +/package-lock.json notification_example/ temp/ .claude/ diff --git a/landing/components/sections/ComparisonSection.vue b/landing/components/sections/ComparisonSection.vue index 9d8a2629..cc739605 100644 --- a/landing/components/sections/ComparisonSection.vue +++ b/landing/components/sections/ComparisonSection.vue @@ -4,6 +4,7 @@ const { t } = useI18n() interface CellValue { status: string note?: string + noteLink?: string } interface ComparisonRow { @@ -154,7 +155,7 @@ const rows = computed(() => [ }, { feature: t('comparison.features.multiAgent'), - us: { status: 'soon', note: 'In development' }, + us: { status: 'soon', note: 'In development', noteLink: 'https://github.com/Alishahryar1/free-claude-code' }, vibeKanban: { status: 'yes', note: '6+ agents' }, aperant: { status: 'yes', note: '11 providers' }, cursor: { status: 'yes', note: 'Multi-model' }, @@ -260,8 +261,17 @@ function getStatusIcon(status: string): string { {{ getStatusIcon((row[comp.key as keyof ComparisonRow] as CellValue).status) }} + + {{ (row[comp.key as keyof ComparisonRow] as CellValue).note }} + {{ (row[comp.key as keyof ComparisonRow] as CellValue).note }} @@ -421,6 +431,19 @@ function getStatusIcon(status: string): string { white-space: normal; } +.comparison-table__cell-note--link { + color: #00d4e6; + text-decoration: underline; + text-decoration-color: rgba(0, 212, 230, 0.3); + text-underline-offset: 2px; + transition: color 0.2s ease, text-decoration-color 0.2s ease; +} + +.comparison-table__cell-note--link:hover { + color: #00f0ff; + text-decoration-color: rgba(0, 240, 255, 0.6); +} + /* Cell status variants */ .comparison-table__cell--yes .comparison-table__cell-content { color: #39ff14; @@ -533,6 +556,16 @@ function getStatusIcon(status: string): string { color: #94a3b8; } +.v-theme--light .comparison-table__cell-note--link { + color: #0891b2; + text-decoration-color: rgba(8, 145, 178, 0.3); +} + +.v-theme--light .comparison-table__cell-note--link:hover { + color: #0e7490; + text-decoration-color: rgba(14, 116, 144, 0.6); +} + .v-theme--light .comparison-table__cell--yes .comparison-table__cell-content { color: #059669; background: rgba(5, 150, 105, 0.1); diff --git a/landing/locales/en.json b/landing/locales/en.json index c08c2e13..eca44653 100644 --- a/landing/locales/en.json +++ b/landing/locales/en.json @@ -4,7 +4,7 @@ "screenshots": "Screenshots", "comparison": "Compare", "download": "Download", - "pricing": "Pricing", + "pricing": "Free", "faq": "FAQ", "viewOnGithub": "View on GitHub" }, diff --git a/landing/locales/ru.json b/landing/locales/ru.json index 7f9a7675..c6a8be3d 100644 --- a/landing/locales/ru.json +++ b/landing/locales/ru.json @@ -4,7 +4,7 @@ "screenshots": "Скриншоты", "comparison": "Сравнение", "download": "Скачать", - "pricing": "Цены", + "pricing": "Бесплатно", "faq": "FAQ", "viewOnGithub": "View on GitHub" }, diff --git a/landing/package-lock.json b/landing/package-lock.json index c5224083..1df6e4e9 100644 --- a/landing/package-lock.json +++ b/landing/package-lock.json @@ -13,6 +13,7 @@ "nuxt": "^3.20.2", "nuxt-icon": "^0.6.10", "pinia": "^3.0.4", + "swiper": "^12.1.2", "vue": "^3.5.27", "vue-i18n": "^11.2.8", "vue-router": "^4.6.4", @@ -13114,6 +13115,25 @@ "node": ">=16" } }, + "node_modules/swiper": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.1.2.tgz", + "integrity": "sha512-4gILrI3vXZqoZh71I1PALqukCFgk+gpOwe1tOvz5uE9kHtl2gTDzmYflYCwWvR4LOvCrJi6UEEU+gnuW5BtkgQ==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/system-architecture": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz",