Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ extension ShapeStyle where Self == Color {

// MARK: - Static Border

static var borderInactive: Color { .init(hex: "C6C6C6") }
static var borderInactive: Color { .init(hex: "000000").opacity(0.05) }
static var borderDisabled: Color { .init(hex: "323537") }
static var borderInverse: Color { .init(hex: "202325") }

Expand All @@ -44,6 +44,7 @@ extension ShapeStyle where Self == Color {
static var gray80: Color { .init(hex: "323537") }
static var gray60: Color { .init(hex: "6F6F6F") }
static var gray40: Color { .init(hex: "A8A8A8") }
static var gray20: Color { .init(hex: "ededed") }
static var gray90: Color { .init(hex: "202325") }
static var grayError: Color { .init(hex: "FF5050") }
static var grayWhite: Color { .init(hex: "FFFFFF") }
Expand All @@ -59,6 +60,9 @@ extension ShapeStyle where Self == Color {
static var surfaceEnable: Color { .init(hex: "0099FF") }
static var surfaceError: Color { .init(hex: "FF5050").opacity(0.2) }

//MARK: -Shadow
static var shadowDefault: Color { .init(hex: "000000").opacity(0.1) }

// MARK: - TextIcon

static var onBackground: Color { .init(hex: "FFFFFF") }
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//
// CardStyle.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//

import SwiftUI

struct CardStyle: ViewModifier {
func body(content: Content) -> some View {
content
.padding(15)
.frame(maxWidth: .infinity, alignment: .leading)
.background(
RoundedRectangle(cornerRadius: 16)
.fill(.staticWhite)
)
.overlay(
RoundedRectangle(cornerRadius: 16)
.stroke(.borderInactive, lineWidth: 0.5)
)
.shadow(color: .shadowDefault, radius: 3, x: 0, y: 1)
}
}

extension View {
public func cardStyle() -> some View {
modifier(CardStyle())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//
// BlogView.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//
import SwiftUI

struct BlogView: View {
let profile: MemberProfile

var body: some View {
VStack(alignment: .leading, spacing: 14) {
Text("블로그")
.pretendardFont(family: .SemiBold, size: 14)

Text(profile.blogURL)
.pretendardFont(family: .Regular, size: 13)
.cardStyle()

}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//
// CollabStyleView.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//
import SwiftUI

struct CollabStyleView: View {
let profile: MemberProfile

var body: some View {
VStack(alignment: .leading, spacing: 14) {
Text("협업스타일")
.pretendardFont(family: .SemiBold, size: 14)
Text(profile.collabStyle)
.pretendardFont(family: .Regular, size: 13)
.foregroundStyle(.textSecondary100)
.lineSpacing(5)
.cardStyle()
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// EditButton.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//
import SwiftUI

struct EditButton: View {
var body: some View {
Button(action: {}) {
Text("수정")
.foregroundColor(.white)
}
.frame(maxWidth: .infinity)
.frame(height: 48)
.background(.backGroundPrimary)
.clipShape(RoundedRectangle(cornerRadius: 16))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//
// IntroductionView.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//
import SwiftUI

struct IntroductionView: View {
let profile: MemberProfile

var body: some View {
VStack(alignment: .leading, spacing: 14) {
Text("자기소개")
.pretendardFont(family: .SemiBold, size: 14)
Text(profile.introduction)
.pretendardFont(family: .Regular, size: 13)
.foregroundStyle(.textSecondary100)
.lineSpacing(5)
.cardStyle()
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//
// MemberDetailView.swift
// TeamIntroduce
//
// Created by 김민희 on 8/11/25.
//

import SwiftUI

struct MemberProfile {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@minneee 좋습니다 !

var image: String = "person.crop.circle"
var name: String = "김철수"
var role: String = "프론트엔드개발자"
var mbti: String = "ENFP"
var introduction: String = "사용자경험을최우선으로생각하는프론트엔드개발자입니다.새로운기술을배우는것을좋아하고,팀원들과아이디어를 공유하며함께성장하는것을즐깁니다."
var strengths: [String] = ["창의적인문제해결능력", "새로운기술에대한빠른학습력", "사용자중심적사고", "긍정적이고적극적인커뮤니케이션"]
var collabStyle: String = "아이디어를 자유롭게공유하고,다양한관점에서문제를바라보는것을 선호합니다.팀원들의의견을경청하고,함께더나은해결책을찾아가는협업을추구합니다."
var blogURL: String = "https: //chulsoo.dev"
}

struct MemberDetailView: View {
private let profile = MemberProfile()

var body: some View {
ScrollView {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굳이 vstack 안쓰고 내부안에 스크롤 할 방식을 선택 할수 있습니다

VStack(spacing: 20) {
MemberProfileView(profile: profile)

IntroductionView(profile: profile)

StrengthsView(profile: profile)

CollabStyleView(profile: profile)

BlogView(profile: profile)

EditButton()
}
.padding(.horizontal, 14)
}
}
}

struct MemberDetailView_Previews: PreviewProvider {
static var previews: some View {
MemberDetailView()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// MemberProfileView.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//
import SwiftUI

struct MemberProfileView: View {
let profile: MemberProfile

var body: some View {
HStack {
Spacer()

VStack(spacing: 7) {
Image(systemName: profile.image)
.font(.system(size: 40))

Text(profile.name)
.pretendardFont(family: .Regular, size: 13)

Text(profile.role)
.pretendardFont(family: .Regular, size: 13)
.foregroundStyle(.textSecondary100)


Text(profile.mbti)
.pretendardFont(family: .Regular, size: 13)
.padding(.horizontal, 12)
.padding(.vertical, 6)
.background(Capsule().fill(.gray20))
}

Spacer()
}
.cardStyle()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//
// StrengthsView.swift
// TeamIntroduce
//
// Created by 김민희 on 8/12/25.
//
import SwiftUI

struct StrengthsView: View {
let profile: MemberProfile

var body: some View {
VStack(alignment: .leading, spacing: 14) {
Text("주요장점")
.pretendardFont(family: .SemiBold, size: 14)
VStack {
ForEach(profile.strengths, id: \.self) { item in
HStack(alignment: .firstTextBaseline, spacing: 8) {
Circle().frame(width: 5, height: 5)
Text(item)
.pretendardFont(family: .Regular, size: 13)
.foregroundStyle(.textSecondary100)
.fixedSize(horizontal: false, vertical: true)
}
.frame(maxWidth: .infinity, alignment: .leading)
}
}
.cardStyle()
}
}
}