forked from vuejs/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: New developer page #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
122 commits
Select commit
Hold shift + click to select a range
b300c6b
feat: Add Talent profile dummy images
TamaraZoric f16c533
Add Proxify partner SVG logos
TamaraZoric 6ce42a6
feat: Rename 'Partners' to 'Experts' and add 'Talent' item
TamaraZoric 3098992
feat: Add optional contact page link for partners page
TamaraZoric b6bbcb0
feat: Add initial data about Proxify to partners.json
TamaraZoric ec44a16
feat: Add initial dummy talent profiles to talent.json
TamaraZoric d4cd662
feat: Add partner configuration file for Proxify integration with Tal…
TamaraZoric bfaa226
feat: Add CardList reusable component with shuffling and filtering su…
TamaraZoric 38b7ddd
feat: Add PageHero reusable component
TamaraZoric 50e969e
feat: Add reusable PageSearchableListLayout component
TamaraZoric 7f1ff75
feat: Add reusable PageShowcaseListLayout component
TamaraZoric 86a33b0
feat: Add reusable CallToActionSection component
TamaraZoric a647afe
refactor: Refactor partner components using reusable layouts
TamaraZoric 30b0ad2
feat: Add Talent profile page section components
TamaraZoric 1e3be27
feat: Add new Talent page hero and join sections
TamaraZoric 223791f
feat: Add TalentPageFooter.vue component
TamaraZoric 3d3c533
feat: Add TypeScript interfaces and utility function for talents
TamaraZoric 36df14a
refactor: Refactor compensation and proficiency Talent components
TamaraZoric c775dbf
feat: Add TalentCard.vue component
TamaraZoric f7b83f4
feat: Add searchable Talents page
TamaraZoric dbd1937
faat: Add dynamic talent page with routing paths
TamaraZoric 9bb9642
feat: Add talent loading components
TamaraZoric bdfefcd
feat: Add TalentPage component
TamaraZoric 27e9692
fix: Fix title for TalentProficiencies and update TalentHero
TamaraZoric a85d786
feat: Add "highlighted" attribute to talent entries
TamaraZoric 769de4e
feat: Add proficiency section to partner config for talent page
TamaraZoric 2a4aedd
feat: Add show all/less button to Talent Proficiencies
TamaraZoric 7699a55
feat: Refactor styles and update UI components on talent pages
TamaraZoric 1a9f1a3
feat: Remove unused divider and update section borders in talent page
TamaraZoric 3e33f89
feat: Add TalentTimezoneFilter component
TamaraZoric 0b921be
feat: Make browse more link optional in page layout
TamaraZoric 6832108
refactor: Remove PageSearchableListLayout component
TamaraZoric d4a7577
refactor: Remove TalentAll component and associated files
TamaraZoric 0d0ac84
feat: Remove highlighted profile logic and update UI elements
TamaraZoric 0113f91
feat: Update TalentPage styling and navigation link
TamaraZoric cbe63f2
feat: Prevent button click event propagation and refactor styling
TamaraZoric 8b2b63f
feat: Toggle visible proficiencies in TalentProficiencies.vue
TamaraZoric b6693d7
feat: Refactor TalentCard links to use router navigation
TamaraZoric 8a3bd13
feat: Refactor and enhance talent components UI and UX
TamaraZoric dad822d
feat: Add diagram component for talent profile
TamaraZoric 7b31c18
refactor: Refactor TalentPage to use TalentProfileDiagram component
TamaraZoric c516f61
refactor: Rename getProfileImage to getTalentProfileImage in talent u…
TamaraZoric 89f84ac
refactor: Rename image retrieval function in TalentCard.vue
TamaraZoric a1f3e3a
feat: Replace talent profile SVG images
TamaraZoric 7ee8f45
refactor: Replace talent profile SVG images
TamaraZoric 3b242ca
feat: Adjust media query breakpoints in TalentCard.vue
TamaraZoric 371d40c
refactor: Update svg files for Talent
TamaraZoric 499170e
refactor: Update SVG paths to enhance visual precision
TamaraZoric 97fe377
refactor: Refactor talents directories to developers
TamaraZoric 10afaf7
feat: Add developer SVG asset
TamaraZoric 3477ba6
feat: Update developer profiles in developers.json
TamaraZoric 374d972
refactor: Refactor developer's JSON descriptions into structured format
TamaraZoric 57a8903
feat: Update Proxify partner details in JSON file
TamaraZoric 43cb011
feat: Update developer's partner configuration and links to use UTM p…
TamaraZoric e24cf81
refactor: Rename developer paths to include developer slug
TamaraZoric 1b0c703
feat: Add titles to developer and partner pages
TamaraZoric 595b2eb
refactor: Rename "timezone" to "region" in developers module
TamaraZoric e7ff62b
refactor: Refactor component classes to follow BEM naming conventions
TamaraZoric f7cf9d5
feat: Add names to developer profiles configuration
TamaraZoric 618caae
refactor: Refactor to improve code readability and consistency along …
TamaraZoric d19bc71
refactor: Update URLs and clean up UTM campaign parameters
TamaraZoric abef3d7
feat: Update developers.json: revise proficiencies and compensations
TamaraZoric 186bd58
feat: Update DeveloperPage.vue score title for clarity
TamaraZoric e582be4
feat: Update hero section titles in developers partnerConfig.js
TamaraZoric 011e38a
feat: Add JSDoc comments and improve utility functions for developer …
TamaraZoric 84b23a9
feat: Truncate developer descriptions and update media queries for de…
TamaraZoric 27748b7
refactor: Remove max-width constraint on showcase list items
TamaraZoric adbc683
refactor: Refactor text truncation utility function for developer pro…
TamaraZoric 21b94e5
refactor: Refactor CSS styles in Developer Card
TamaraZoric 1118544
refactor: Refactor DeveloperExperienceDescription interface
TamaraZoric 016b718
refactor: Update Proxify URLs in partners.json
TamaraZoric 3fef199
feat: Update SVGs and CSS for responsive design for developer profile…
TamaraZoric 36253e4
feat: Enhance spotlighted profile selection logic
TamaraZoric 2c1cc0f
feat: Add prependText to CandidateProfile component in developer profile
TamaraZoric f1da91e
feat: Update 'Contact us' text to 'Contact Proxify' in developer pages
TamaraZoric 0bb7b8b
refactor: Remove DeveloperRegionFilter component from developer pages
TamaraZoric 49ab005
feat: Make CallToActionSection props optional and add slot support
TamaraZoric 9155451
feat: Enhance CardList component with item splitting and default props
TamaraZoric d450dfa
feat: Adjust layout and spacing on DeveloperPage and DeveloperExperie…
TamaraZoric bba9bd4
feat: Update compensation descriptions in developers.json
TamaraZoric 85c6277
Simplify featured-actions CSS rules for page showcase layout
TamaraZoric d4e0466
feat: Update partner name dynamically in Developer Loading page
TamaraZoric 2f89f74
Make titles optional and improve layout styling for developer loading…
TamaraZoric c1b85a8
feat: Update currency format in developers.json file
TamaraZoric c9bfaf0
refactor: Improve layout of featured-actions in DeveloperLoading.vue
TamaraZoric b0ef5b9
feat: Format compensation numbers in developers.json
TamaraZoric 2aedf09
feat: Update labels and styling on Developer components
TamaraZoric f361b8a
feat: Adjust page grid layout and image sizes on Developer pages
TamaraZoric 5b84a52
feat: Update developer ids and rename profile image files accordingly
TamaraZoric 5a4b9f4
feat: Add page title to developer page configuration
TamaraZoric 7f016df
feat: Update website link for Vue partner config
TamaraZoric fc40f37
feat: Open developer page footer website link in new tab
TamaraZoric 59e5409
feat: Update margins and styles for developer components
TamaraZoric 83d1111
feat: Rename CSS class in DeveloperProfileDiagram.vue
TamaraZoric 3e7d940
feat: Add profile and score diagram sections to partnerConfig for dev…
TamaraZoric 6287077
refactor: Remove image property and related utilities from developer …
TamaraZoric c50ab7c
feat: Enhance developer components conditional rendering and fix deve…
TamaraZoric cda9d4a
feat: Update developer profile diagrams
TamaraZoric 1e4a3c2
feat: Adjust SVG wrapper width in DeveloperProfileDiagram
TamaraZoric ebdf8a5
feat: Update monthly compensation for developers
TamaraZoric 43c3f15
feat: Remove border from DeveloperCard component
TamaraZoric 327b14b
feat: Fix formatting issue in developers.json
TamaraZoric e54edd7
feat: Remove redundant dark mode hover styles for developer buttons
TamaraZoric 934f807
refactor: Update descriptions structure for developer experience
TamaraZoric 536aea2
refactor: Remove unnecessary semicolons for consistent code style
TamaraZoric 81f65e4
feat: Update key for description list in PartnerPage.vue
TamaraZoric 743be73
feat: Replace developer 5328 profile image
TamaraZoric 7dbb38c
feat: Replace proxify hero image
TamaraZoric 5a0cadf
feat: Clean list of skills of developers
jarnheimer e8ef470
get dev images optimized from cloudinary
29avet1 372bdf2
Merge pull request #2 from proxify-ab/feat/dev-img-optimizations
29avet1 97cb682
update svg scores
29avet1 10aa7fb
update dev experience periods
29avet1 4fee836
add website hostname to hire form query params
29avet1 8413a66
remove hostname form hire form url
29avet1 c109222
Merge branch 'main' into feat/add-new-talent-page
29avet1 2b5edf3
fix cloudinary default props
29avet1 95ef911
add developer titles
29avet1 a7dd0ff
update devs to be taken by slug, remove unnecessary computed variables
29avet1 d0ef8cc
move cloudinary URL to partnerConfig
29avet1 29e5c85
Merge pull request #3 from proxify-ab/feat/dev-titles
29avet1 b3e3777
comment to keep semicolon
29avet1 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,7 @@ | |
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
.idea | ||
|
||
# Thumbnails | ||
._* | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
<script setup lang="ts"> | ||
withDefaults(defineProps<{ | ||
title?: string | ||
description?: string | ||
link?: string | ||
linkText?: string | ||
showDivider?: boolean | ||
}>(), { | ||
showDivider: true | ||
}) | ||
</script> | ||
|
||
<template> | ||
<section class="cta-section"> | ||
<div v-if="showDivider" class="cta-divider"></div> | ||
<div class="cta-content"> | ||
<h2 v-if="title" class="cta-title">{{ title }}</h2> | ||
<p v-if="description" class="cta-description">{{ description }}</p> | ||
<a v-if="link" :href="link" target="_blank" class="cta-link">{{ linkText }}</a> | ||
<slot></slot> | ||
</div> | ||
</section> | ||
</template> | ||
|
||
<style scoped> | ||
.cta-section { | ||
text-align: center; | ||
max-width: 688px; | ||
margin: 0 auto; | ||
} | ||
|
||
.cta-divider { | ||
width: 100px; | ||
margin: 0 auto; | ||
border-top: 1px solid var(--vt-c-divider-light); | ||
} | ||
|
||
.cta-content { | ||
padding: 28px 28px 96px; | ||
} | ||
|
||
.cta-title { | ||
font-size: 34px; | ||
font-weight: 600; | ||
letter-spacing: -0.5px; | ||
line-height: 1.2; | ||
margin: 0.5em 0 1em; | ||
} | ||
|
||
.cta-description { | ||
color: var(--vt-c-text-2); | ||
} | ||
|
||
.cta-link { | ||
margin-top: 2em; | ||
display: inline-block; | ||
padding: 12px 24px; | ||
background-color: var(--vt-c-bg-mute); | ||
color: var(--vt-c-text-code); | ||
font-weight: 600; | ||
border-radius: 6px; | ||
text-decoration: none; | ||
transition: background-color 0.5s, color 0.5s; | ||
} | ||
|
||
.cta-link:hover { | ||
background-color: var(--vt-c-gray-light-4); | ||
} | ||
|
||
.dark .cta-link:hover { | ||
background-color: var(--vt-c-gray-dark-3); | ||
} | ||
</style> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
<script setup lang="ts"> | ||
import { computed, onMounted, ref, shallowRef } from 'vue' | ||
|
||
const props = withDefaults( | ||
defineProps<{ | ||
items: Array<any> | ||
filter?: (item: any) => boolean | ||
cardComponent: any | ||
showLinkToAll?: boolean | ||
shuffleItems?: boolean | ||
browseLinkText?: string | ||
browseLinkUrl?: string | ||
splitBy?: string | ||
}>(), | ||
{ | ||
showLinkToAll: false, | ||
shuffleItems: false, | ||
splitBy: 'platinum' | ||
} | ||
) | ||
|
||
const isMounted = ref(false) | ||
const items = shallowRef([...props.items]) | ||
|
||
const filteredItems = computed(() => | ||
props.filter ? items.value.filter(props.filter) : items.value | ||
) | ||
|
||
onMounted(() => { | ||
isMounted.value = true | ||
items.value = processItems([...items.value], props.splitBy, props.shuffleItems) | ||
}) | ||
|
||
function processItems(items: Array<any>, splitBy: string, shouldShuffle: boolean) { | ||
const splitItems = items.filter(item => item[splitBy]) | ||
const otherItems = items.filter(item => !item[splitBy]) | ||
|
||
if (shouldShuffle) { | ||
shuffleArray(splitItems) | ||
shuffleArray(otherItems) | ||
} | ||
|
||
return [...splitItems, ...otherItems] | ||
} | ||
|
||
function shuffleArray(array: Array<any>) { | ||
for (let i = array.length - 1; i > 0; i--) { | ||
const j = Math.floor(Math.random() * (i + 1)); // don't remove semicolon | ||
[array[i], array[j]] = [array[j], array[i]] | ||
} | ||
} | ||
</script> | ||
|
||
<template> | ||
<div v-show="isMounted" class="card-list"> | ||
<!-- to skip SSG since the partners are shuffled --> | ||
<ClientOnly> | ||
<component | ||
:is="cardComponent" | ||
v-for="item in filteredItems" | ||
:key="item.id || item.name" | ||
:data="item" | ||
/> | ||
</ClientOnly> | ||
|
||
<a | ||
v-if="showLinkToAll && filteredItems.length % 2" | ||
:href="browseLinkUrl" | ||
class="browse-all-link" | ||
> | ||
{{ browseLinkText }} | ||
</a> | ||
</div> | ||
</template> | ||
|
||
<style scoped> | ||
.card-list { | ||
display: flex; | ||
flex-wrap: wrap; | ||
justify-content: space-between; | ||
} | ||
|
||
.browse-all-link { | ||
display: block; | ||
width: 48.5%; | ||
margin-bottom: 36px; | ||
padding-top: 240px; | ||
font-size: 1.2em; | ||
text-align: center; | ||
color: var(--vt-c-text-2); | ||
border: 1px solid var(--vt-c-divider-light); | ||
border-radius: 4px; | ||
transition: color 0.5s ease; | ||
} | ||
|
||
.browse-all-link:hover { | ||
color: var(--vt-c-text-1); | ||
} | ||
|
||
@media (max-width: 768px) { | ||
.browse-all-link { | ||
display: none; | ||
} | ||
} | ||
</style> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
<template> | ||
<div class="page-hero"> | ||
<h1 class="page-hero__title"> | ||
<slot name="title" /> | ||
</h1> | ||
<p class="page-hero__lead"> | ||
<slot name="lead" /> | ||
</p> | ||
</div> | ||
</template> | ||
|
||
<style scoped> | ||
.page-hero { | ||
padding: 48px 24px; | ||
text-align: center; | ||
margin: 0 auto; | ||
max-width: 688px; | ||
} | ||
|
||
.page-hero__title, | ||
.page-hero__lead, | ||
.page-hero :deep(.link) { | ||
transition: color 0.25s; | ||
} | ||
|
||
.page-hero__title { | ||
line-height: 32px; | ||
font-size: 32px; | ||
font-weight: 500; | ||
margin-bottom: 0.3em; | ||
} | ||
|
||
.page-hero__lead { | ||
padding-top: 8px; | ||
font-size: 16px; | ||
font-weight: 500; | ||
color: var(--vt-c-text-2); | ||
} | ||
|
||
.page-hero__lead a { | ||
color: var(--vt-c-brand); | ||
} | ||
|
||
.page-hero :deep(.link) { | ||
color: var(--vt-c-brand); | ||
} | ||
|
||
.page-hero :deep(.link:hover) { | ||
color: var(--vt-c-brand-dark); | ||
} | ||
|
||
/* Media Queries */ | ||
@media (min-width: 768px) { | ||
.page-hero { | ||
padding: 64px 32px; | ||
} | ||
|
||
.page-hero__title { | ||
line-height: 40px; | ||
font-size: 40px; | ||
} | ||
} | ||
</style> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
<script setup lang="ts"> | ||
const props = defineProps<{ | ||
spotlightTitle?: string | ||
featuredTitle?: string | ||
browseLinkText?: string | ||
browseLinkUrl?: string | ||
}>() | ||
</script> | ||
|
||
<template> | ||
<div class="showcase-layout"> | ||
<!-- Hero Section --> | ||
<slot name="hero"></slot> | ||
|
||
<!-- Spotlight Section --> | ||
<div class="showcase-layout__spotlight"> | ||
<div class="spotlight-content"> | ||
<h2 v-if="props.spotlightTitle" class="section-title">{{ props.spotlightTitle }}</h2> | ||
<slot name="spotlight"></slot> | ||
</div> | ||
</div> | ||
|
||
<!-- Featured Section --> | ||
<div class="showcase-layout__featured"> | ||
<!-- Optional Actions Section --> | ||
<div v-if="$slots.actions" class="featured-actions"> | ||
<slot name="actions"></slot> | ||
</div> | ||
<h2 v-if="props.featuredTitle" class="section-title">{{ props.featuredTitle }}</h2> | ||
<slot name="featured-list"></slot> | ||
<slot name="featured-cta"> | ||
<div v-if="browseLinkUrl" class="browse-more"> | ||
<a class="accent-button" :href="props.browseLinkUrl">{{ props.browseLinkText }}</a> | ||
</div> | ||
</slot> | ||
</div> | ||
|
||
<!-- Join Section --> | ||
<slot name="join"></slot> | ||
</div> | ||
</template> | ||
|
||
<style scoped> | ||
.showcase-layout { | ||
padding-bottom: 16px; | ||
} | ||
|
||
.showcase-layout__spotlight { | ||
background-color: var(--vt-c-bg-soft); | ||
} | ||
|
||
.spotlight-content { | ||
padding: 36px 48px; | ||
max-width: 1280px; | ||
margin: 0 auto; | ||
} | ||
|
||
.section-title { | ||
font-size: 1.1em; | ||
font-weight: 600; | ||
margin-bottom: 1.5em; | ||
color: var(--vt-c-text-2); | ||
} | ||
|
||
.showcase-layout__featured { | ||
padding: 36px 48px; | ||
max-width: 960px; | ||
width: 100%; | ||
margin: 0 auto; | ||
} | ||
|
||
.featured-actions { | ||
width: 100%; | ||
margin-bottom: 1.5em; | ||
} | ||
|
||
.browse-more { | ||
margin: 1.5rem auto; | ||
display: flex; | ||
flex-direction: column; | ||
align-items: center; | ||
justify-content: center; | ||
} | ||
|
||
.accent-button, | ||
:deep(.accent-button) { | ||
display: block; | ||
width: fit-content; | ||
min-width: 240px; | ||
text-align: center; | ||
background-color: var(--vt-c-brand); | ||
color: var(--vt-c-bg); | ||
padding: 12px 24px; | ||
font-weight: 600; | ||
border-radius: 6px; | ||
transition: background-color 0.5s, color 0.5s; | ||
text-decoration: none; | ||
} | ||
|
||
.accent-button:hover, | ||
:deep(.accent-button):hover { | ||
background-color: var(--vt-c-brand-dark); | ||
} | ||
|
||
/* Media Queries */ | ||
@media (max-width: 768px) { | ||
.spotlight-content, | ||
.showcase-layout__featured { | ||
padding: 36px 28px; | ||
} | ||
} | ||
</style> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To remove
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to keep it, as this is a folder made by JetBrains IDE and it is better to always ignore it