Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tran-quang-hung-portfolio
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
HungTQ
tran-quang-hung-portfolio
Commits
ce17ed16
Commit
ce17ed16
authored
Jun 29, 2026
by
HungTQ
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(ui): restore cv preview and scroll reveal
parent
d31f77fc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
5 deletions
+28
-5
App.css
src/App.css
+14
-3
App.tsx
src/App.tsx
+14
-2
No files found.
src/App.css
View file @
ce17ed16
...
...
@@ -387,7 +387,10 @@ h3 {
.phone-frame
img
{
display
:
block
;
filter
:
saturate
(
1.02
)
contrast
(
1.07
);
height
:
auto
;
position
:
relative
;
width
:
100%
;
z-index
:
1
;
}
.floating-note
{
...
...
@@ -772,10 +775,19 @@ footer {
}
.reveal
{
animation
:
revealIn
760ms
cubic-bezier
(
0.2
,
0.8
,
0.2
,
1
)
var
(
--delay
,
0ms
)
both
;
opacity
:
1
;
transform
:
none
;
}
.reveal.is-visible
{
.has-reveal
.reveal
{
opacity
:
0
;
transform
:
translateY
(
30px
);
transition
:
opacity
760ms
cubic-bezier
(
0.2
,
0.8
,
0.2
,
1
)
var
(
--delay
,
0ms
),
transform
760ms
cubic-bezier
(
0.2
,
0.8
,
0.2
,
1
)
var
(
--delay
,
0ms
);
}
.has-reveal
.reveal.is-visible
{
opacity
:
1
;
transform
:
translateY
(
0
);
}
...
...
@@ -939,7 +951,6 @@ footer {
}
.reveal
{
animation
:
none
!important
;
opacity
:
1
;
transform
:
none
;
}
...
...
src/App.tsx
View file @
ce17ed16
...
...
@@ -116,6 +116,7 @@ function App() {
)
useEffect
(()
=>
{
document
.
documentElement
.
classList
.
add
(
'has-reveal'
)
const
revealItems
=
document
.
querySelectorAll
<
HTMLElement
>
(
'.reveal'
)
const
observer
=
new
IntersectionObserver
(
(
entries
)
=>
{
...
...
@@ -130,7 +131,10 @@ function App() {
)
revealItems
.
forEach
((
item
)
=>
observer
.
observe
(
item
))
return
()
=>
observer
.
disconnect
()
return
()
=>
{
observer
.
disconnect
()
document
.
documentElement
.
classList
.
remove
(
'has-reveal'
)
}
},
[])
function
handleAsk
(
nextQuestion
=
question
)
{
...
...
@@ -196,7 +200,15 @@ function App() {
<
div
className=
"phone-frame"
>
<
div
className=
"phone-speaker"
/>
<
div
className=
"screen-scan"
aria
-
hidden=
"true"
/>
<
img
src=
"/cv-preview.png"
alt=
"Tran Quang Hung CV preview"
/>
<
img
src=
"/cv-preview.png?v=2"
alt=
"Tran Quang Hung CV preview"
width=
"894"
height=
"1264"
loading=
"eager"
decoding=
"sync"
fetchPriority=
"high"
/>
</
div
>
<
div
className=
"floating-note"
>
<
Sparkles
size=
{
18
}
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment