Application Design II - Task 3: Interactive Component Design and Development
13.11.2024 - 4.12.2024 / Week 08 - Week 11
Tan Zhao Yi / 0363285
Application Design II / Bachelor of Design (Hons) in Creative Media
Task 3: Interactive Component Design and Development
Since this was my first time writing
JavaScript independently, the process of
creating this animation took longer than
expected. There were several challenges I
encountered along the way, but through trial
and error, I was able to refine the code.
Fortunately, the final result was
successful, and the animation works as
intended.
Outcome - Startup Logo Animation
I initially attempted to assign a single class to
all the icons and style them collectively to save
time and ensure consistency. However, I quickly
realized that each icon had unique dimensions,
with varying widths and heights. As a result, a
uniform styling approach didn't work as intended.
To address this issue, I had to individually style
each icon, carefully adjusting their properties to
maintain a balanced and cohesive appearance within
the design. Although this process was more
time-consuming, it ensured that every icon fit
perfectly within the layout.
E. Page Transition
The collapsed part in the CSS file could be
referred to Fig 3.2, which is the first step of
transferring funds.
Tan Zhao Yi / 0363285
Application Design II / Bachelor of Design (Hons) in Creative Media
Task 3: Interactive Component Design and Development
LIST
Task 3: Interactive Component Design and Development
INSTRUCTION
Task 3: Interactive Component Design and
Development
In this task, we are required to explore
and make creative decisions on the
type of interactions they would want to integrate
into their app. The outcome of this task is a fully functional
animation element that is ready to be integrated
into the final app. Unlike the visual mockups
created in Task 2, this deliverable represents an
actual implementation. It will be developed using
HTML, CSS, and JavaScript, with the option to
utilize animation frameworks if needed.
The six interactive elements I have chosen
are:
- Startup Logo Animation
- Slide Up Box
- Side Menu Interactions
- Carousel Menu
- Page Transition
- Notifications Interactions
A. Startup Logo Animation
I started with illustrating the logo in Adobe
Illustrator, then animate in After Effect. I
plan to export the GIF file and import it into
Dreamweaver.
![]() |
Fig 1.1. Animating Public Bank logo in After Effect |
One issue I encountered was with the font size.
In Figma, I had planned for the heading to be 32px
and the body font to be 15px. However, when I
applied these sizes in CSS, they appeared much
larger than I had anticipated. This discrepancy
required me to adjust the font sizes to better fit
the design and ensure the layout looked consistent
across different screen sizes. Therefore, I
changed the font size of the heading to 25px and
the body font to 12px.
![]() |
Fig 1.3. HTML - Startup Logo Animation |
Fig 1.4. CSS - Startup Logo Animation
![]() |
Fig 1.5. JavaScript - Startup Logo Animation |
B. Slide Up Box
After I done with styling the website, I
started exploring how to write the script of a
CTA button. When users clicked on the log in
button, the box will slides up from the bottom,
asking users to enter their details.
Additionally, I added a function of tapping
outside the box to slides down the box.
The side menu interaction includes the
transition and hover effect.
First I start with styling the transfer page,
following by the side menu. For the list in side menu, I set them as
<li> except for the last one. This was
because I wanted to avoid having a border line
appear beneath the final list item, as it
would disrupt the visual flow and make the
design look less polished. Instead of applying
the same <li> styling to the last item,
I adjusted it separately by using <p> to
remove the border and create a seamless ending
to the menu. This approach maintained the
overall aesthetics and gave the side menu a
more refined and intentional appearance.
Fig 3.1. HTML and JavaScript - Side Menu
Interaction
D. Carousel Menu
While working with the UI at the bottom of the
page, I discovered that different phone size may
affect the padding, therefore I decided to
change the "International Banking" to "Global
Banking"to minimise the possibility of
overlapping the text.
|
Fig 4.1. HTML - Carousel Menu |
|
Fig 4.2. CSS - Carousel Menu |
Outcome - Carousel Menu
![]() |
Fig 4.3. Outcome - Carousel Menu |
This section pertains to the transition within
the Fund Transfer process, where the page
smoothly swipes to the left as the user proceeds
to the next step. This motion provides a clear
and intuitive sense of progression, enhancing
the user experience by visually indicating a
shift to a new phase in the workflow. To make
the process more thorough and user-friendly, I
added a detailed confirmation page after the
user inputs the recipient's information. This
confirmation page allows the user to review and
verify all entered details, such as the
recipient's name, account number, and the
transfer amount, ensuring accuracy before
finalizing the transaction. This addition not
only minimizes errors but also builds trust and
confidence in the transfer process.
![]() |
Fig 5.1. Transaction Confirmation Page |
|
Fig 5.2. HTML - Page Transition |
|
|
|
Outcome - Page Transition
![]() |
|
|
F. Notification Interaction
My original plan for the notification page was
to implement a sliding red line beneath the
active label. When a label is selected, the red
line would appear underneath it, and when the
user clicks on another label, the red line would
smoothly slide to the new label.
To achieve this effect, I consulted AI for
conceptual guidance and discovered a new tool
called DOMRect. DOMRect represents the size of
an element and its position relative to the
viewport, which is essential for positioning the
red line accurately. I plan to implement DOMRect
in my script to track and update the position of
the red line dynamically, allowing for the
desired sliding effect as the user navigates
between labels. Also, I added a smooth easing effect for the
content to enhance user engagement.
|
Fig 6.1. HTML - Notification Interaction |
![]() |
|
|
|
Fig 6.3. CSS - Notification Interaction |
Outcome - Notification Interaction
REFLECTION
Experience
At first, I struggled with the logic of
making the preloader transition smoothly
to the main content. It was frustrating
when things didn’t work as expected,
especially when the animations didn’t play
correctly. However, with patience and
guidance, I learned to properly reference
elements
using
document.getElementById
and
control animations with GSAP. It felt
rewarding to see the final transition work
as planned, and I gained more confidence
in my ability to solve coding problems.
Observations
One key observation I made is how
important it is to reference elements
correctly in JavaScript. Missing even a
small detail, like an
incorrect
ID
, can stop
the entire script from working. I also
noticed that GSAP animations require
proper timing and sequencing to look
smooth. Another observation was how the
combination of HTML, CSS,
and JavaScriptworks together. While I
thought CSS wasn’t necessary at first, I
realized it plays a big role in setting
the initial visibility of elements
like #main-content
.
Findings
I discovered that small errors can cause big
problems, but they are often easy to fix once
identified. I learned that
using
console.log()
can
help track errors and see where things go wrong. I
also realized how powerful GSAP is for making
animations smooth and professional. Most
importantly, I found that clear structure and
well-named elements (like
using #preloader
and #main-content
)
are essential for a working and understandable
script. This experience taught me to stay patient,
double-check my references, and test small parts
of my code step by step.
Comments
Post a Comment