Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
12
Comments
14
P

Kellen James

@KellenkjamesAtlanta, GA320 points

Frontend developer with 5+ years of experience, currently mastering Angular. I focus on clean code, scalable systems, and real UX. Building UI that actually works—no shortcuts, just craftsmanship.

I’m currently learning...

JavaScript (ES6), Angular, TypeScript

Latest solutions

  • Responsive tip calculator built with modular MVC architecture and SCSS

    #accessibility#sass/scss#bem

    P
    Kellen James•320
    Submitted 18 days ago

    N/A


    1 comment
  • Responsive dashboard UI built with modular SCSS and state-driven JS

    #bem#sass/scss#accessibility

    P
    Kellen James•320
    Submitted about 1 month ago

    Not seeking additional help at this time but feedback is welcome.


    1 comment
  • Newsletter Sign-Up Form — SCSS Architecture, BEM, Modular JavaScript


    P
    Kellen James•320
    Submitted about 2 months ago

    1 comment
  • Article preview component with popup

    #accessibility#bem#sass/scss

    P
    Kellen James•320
    Submitted about 2 months ago

    Nothing at this time.


    1 comment
  • Responsive landing page challenge focused on modular SCSS architecture

    #sass/scss#bem

    P
    Kellen James•320
    Submitted 2 months ago

    N/A


    1 comment
  • A testimonials grid section - built using CSS Grid

    #bem#sass/scss

    P
    Kellen James•320
    Submitted 2 months ago

    N/A


    1 comment
View more solutions

Latest comments

  • 0xg3nius•280
    @dev0xgenius
    Submitted 18 days ago
    What are you most proud of, and what would you do differently next time?

    I'm proud that i completed the challenge. What i would do differently next time, would be to plan out and organize my types and theme (regardless of the styling solution)

    What challenges did you encounter, and how did you overcome them?

    The whole project was a challenge. I've not done or attempted an advanced tagged challenge before so... but having to go through the docs for MUI, RRV7, zod and typescript was challenging somewhat and the only way to overcome such a challenge is acceptance

    What specific areas of your project would you like help with?

    Typescript and everything else

    An interactive multi step form built using React Router v7 and MUI

    #material-ui#react-hook-form#react-router#typescript
    1
    P
    Kellen James•320
    @Kellenkjames
    Posted 18 days ago

    Great job on this project. I can tell a lot of work went into this one. Nice work!

  • Fernando Mendoza•240
    @whiteknight-dev
    Submitted 19 days ago
    What are you most proud of, and what would you do differently next time?

    I'm proud of the design with css, I know if we had a bigger project we would have to implement the styles differently, like using classes.

    What challenges did you encounter, and how did you overcome them?

    How to manage the logic of the form without a submit event.

    What specific areas of your project would you like help with?

    I always want to improve my responsive design skills and programming logic, if you want to help it will be appreciated, thank you.

    Tip calculator app using flexbox and grid

    #accessibility
    1
    P
    Kellen James•320
    @Kellenkjames
    Posted 18 days ago

    Great work overall — the layout is clean and the core functionality is working well. One suggestion would be to add error validation for the "Number of People" field to handle edge cases like empty or zero input.

    Also, consider adjusting the max-width and horizontal padding on smaller viewports to give the layout more breathing room. Keep up the solid work!

  • Abdulgafar-Riro•220
    @Abdulgafar-Riro
    Submitted about 1 month ago
    What are you most proud of, and what would you do differently next time?

    What I'm most proud of:

    I'm particularly proud of how clean and responsive the UI turned out. I managed to replicate the design very closely across all screen sizes using just SCSS and vanilla JavaScript. Additionally, dynamically loading and updating the time tracking data from JSON without relying on any frameworks really helped reinforce my understanding of DOM manipulation and state management in plain JavaScript.

    What I'd do differently next time:

    Next time, I would:

    • Use a JavaScript framework like React or Vue to manage state and UI updates more efficiently.
    • Incorporate unit testing (e.g., with Jest) to ensure the logic for switching timeframes works perfectly under all conditions.
    • Implement localStorage to remember the last selected timeframe on page reload.
    • Add animations or transitions when switching between views for a smoother UX.
    What challenges did you encounter, and how did you overcome them?

    Challenges I encountered and how I overcame them:

    One of the main challenges I faced was ensuring layout consistency across different screen sizes, especially when transitioning between mobile, tablet, and desktop views. At first, the activities-container didn't align perfectly with the dashboard-container, which created an unbalanced appearance. I resolved this by thoroughly reviewing my CSS structure, adjusting height calculations, and using flex and grid properties more effectively to maintain proportional spacing.

    Another challenge was managing the data dynamically using only JavaScript and JSON. It required careful DOM manipulation to ensure the time tracking cards updated correctly when switching between daily, weekly, and monthly views. I overcame this by writing clean, modular functions, add the images to the Json file and thoroughly testing the logic with different datasets.

    Lastly, styling the hover and active states consistently across components took some refining. I used SCSS nesting and variables to manage reusable styles more efficiently.

    These challenges helped me grow more confident in structuring CSS for scalability and writing cleaner, more maintainable JavaScript.

    What specific areas of your project would you like help with?

    Areas I’d appreciate feedback on:

    Responsive Layout Tweaks: While the project is responsive, I’d like expert insights on better handling height alignment issues between dashboard-container and activities-container, especially on medium-sized screens.

    Code Optimization: I’m interested in any suggestions to improve the JavaScript logic used for switching between timeframes (daily, weekly, monthly) — particularly on making the code more modular or efficient.

    SCSS Structure: Feedback on how I’ve structured and nested SCSS would be appreciated. I'm curious if there's a cleaner way to organize variables, mixins, or responsive styles.

    Time Tracking Dashboard – Vanilla JS, SCSS, Responsive

    #bem#sass/scss#van-js#accessibility
    1
    P
    Kellen James•320
    @Kellenkjames
    Posted about 1 month ago

    Great job implementing the functionality and getting the dashboard working! I especially like your clear structure and how you've handled button feedback logic — nice touch.

    A few suggestions to take it to the next level:

    • 🔁 Use event delegation instead of adding multiple listeners manually — it’s more scalable and keeps your code DRY.

    • 📚 Replace the nested ternary operator with a simple mapping object for better readability and maintainability.

    • 🌐 Avoid using global state like let activityData = [] — try to encapsulate logic within a function or module to reduce side effects.

    • 📱 I also noticed a layout issue with the footer on tablet viewports. It appears to shift unexpectedly. Consider using position: fixed instead of position: absolute for more consistent behavior.

    You're definitely on the right track — refining patterns like these will level you up fast.

    Marked as helpful
  • papayaw007•100
    @papayaw007
    Submitted 3 months ago

    card with functionality and tailwind

    1
    P
    Kellen James•320
    @Kellenkjames
    Posted about 2 months ago

    ✅ Great work getting the form logic functional and exploring tools like JustValidate and Tailwind. Your DOM transitions are smooth, and the structure of your markup is solid—awesome job connecting everything end-to-end.

    ⚠️ The JS could be simplified: For a single-field form, JustValidate and Object.fromEntries() are more complex than needed. Also, avoid adding event listeners inside callbacks—move them outside to prevent multiple bindings.

    🧠 Tailwind via CDN is limiting your responsive layout. On mobile/tablet, the layout breaks due to missing sm: or md: classes. Try using the full Tailwind build setup, and consider writing a bit of custom CSS for fallback flexibility and better layout control.

  • Abdulgafar-Riro•220
    @Abdulgafar-Riro
    Submitted about 2 months ago
    What are you most proud of, and what would you do differently next time?

    What I'm Most Proud Of I'm most proud of how I implemented the responsive card layout that adapts smoothly between mobile and desktop views. I successfully used SCSS to manage variables, nesting, and media queries, which made the styles organized and maintainable. The interactive share button with its toggle effect was another highlight—it adds a polished, dynamic touch to the UI.

    What I’d Do Differently Next Time Next time, I would:

    1. Improve accessibility by adding ARIA labels and keyboard navigation for the share button and social icons.

    2. Refactor JavaScript to make the code more modular and scalable, possibly with ES6 classes or modules.

    3. Consider using CSS Grid for even cleaner layout control and better alignment in more complex designs.

    4. Use a component-based approach with a framework like React for better structure and reusability.

    What challenges did you encounter, and how did you overcome them?

    Challenges I Encountered

    1. Positioning the Share Popup Correctly Across Viewports One of the trickiest parts was aligning the share popup tooltip so that it appeared neatly on both mobile and desktop without overlapping or misaligning the content.

    How I Overcame It: I used a combination of position: absolute, calculated margins, and media queries. I also added a small arrow using CSS borders to visually link the tooltip to the share button.

    1. Making the Layout Responsive Creating a layout that works seamlessly across screen sizes required careful restructuring of the card elements and media query tweaking.

    How I Overcame It: I structured the SCSS with mobile-first styling and then added desktop-specific overrides. This approach made debugging and maintenance much easier.

    1. Ensuring the Share Button Functionality Worked Smoothly Toggling the visibility of the share icons without causing layout shifts or conflicts with z-index layering was initially challenging.

    How I Overcame It: I used JavaScript to toggle classes (.hidden and .active) and made sure each interactive element had proper z-index layering. Testing thoroughly on multiple devices helped iron out any bugs.

    What specific areas of your project would you like help with?

    Specific Areas I’d Like Help With

    1. Accessibility (a11y) Enhancements I'd like to ensure the component is fully accessible — for example, proper ARIA roles, focus management when toggling the share panel, and keyboard navigation support. 👉 Could you advise on best practices or things I might’ve missed?

    2. Semantic HTML Structure While the component is visually sound, I want to confirm that I'm using the most semantic and meaningful tags (e.g., main, footer, button, section, etc.) for screen readers and SEO.

    3. Optimizing SCSS Structure I used BEM naming with nested SCSS. 👉 Can this structure be improved for better scalability and maintainability in larger projects?

    4. Improved JavaScript Logic The share toggle is functional but basic. 👉 Would a more scalable approach like event delegation or data attributes make sense here?

    Article preview component

    #accessibility#sass/scss#van-js
    1
    P
    Kellen James•320
    @Kellenkjames
    Posted about 2 months ago

    Great job getting the toggle functionality working — that’s a solid foundation! One suggestion for improvement would be to add logic that closes the share tooltip when the user clicks outside of it. This is a common UX expectation and helps prevent the tooltip from staying open unintentionally. You're off to a strong start — keep iterating and thinking through real-world user behavior. 👏

    Marked as helpful
  • P
    AnjelToppo•590
    @AnjelToppo
    Submitted 3 months ago

    Meet landing page

    #sass/scss#bem
    1
    P
    Kellen James•320
    @Kellenkjames
    Posted 2 months ago

    First, great job on the overall semantic structure and thoughtful use of utility classes — your layout flows cleanly and your markup feels accessible.

    Some constructive notes for further polish:

    SCSS Usage: You've created powerful mixins for utilities (e.g., grid, flex, text-color), which show strong SCSS fundamentals. However, for larger scalability, introducing separate component and layout partials (following a full folder architecture like components/ and layout/) would make the project even easier to maintain and scale.

    BEM Naming: While your class structure is readable, applying full BEM conventions (Block__Element--Modifier) would make your CSS architecture even stronger — especially as projects grow in complexity.

    Complexity vs. Simplicity: Your SCSS mixins are very dynamic (especially for a simple landing page). Sometimes for smaller projects, leaner mixins or direct styling can make the codebase lighter and faster to build without sacrificing quality.

    Overall, awesome work — you clearly have strong SCSS skills and an eye for scalable CSS architecture. A few small adjustments would take it to an even higher professional standard.

View more comments
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub