Skip to content

[UXD Spike] Manage & Apply Competencies: clarify multi-box combining-operator UX and distinguish group levels visually #708

Closed

Description

@thelmick-unicon

Use Case

As a UX designer producing the Figma designs for the Manage & Apply Competencies authoring page, I want to clarify the combining-operator treatment for clusters of Competency Criteria Group boxes and add a visual way to distinguish a leaf box from a course-level grouping of boxes from the overall competency-wide grouping, so that course authors are never shown a UI implying an independent logic choice per adjacent pair of boxes when the real mechanism is one shared choice per cluster, so that they can tell at a glance which boxes are grouped together and at which level, and so that #671's engineers get an unambiguous, signed-off spec instead of having to guess at the intended behavior.

Acceptance Criteria

This is a design spike. The deliverable is design artifacts and documented decisions, not working code.

  • Updated Figma frame(s) showing 3+ sibling Competency Criteria Group boxes within a single course, each with its own delete/trash affordance, combined by one shared operator control rather than independently-set per-pair dropdowns.
  • Updated Figma frame(s) showing 2+ courses' box-clusters combining with each other via one shared operator control at the cross-course tier.
  • Updated visual treatment for the shared-operator control itself, replacing the current per-pair "Or ▾" connector, at both tiers.
  • A visual treatment distinguishing a leaf box, a course-level cluster of sibling leaf boxes, and the root-level cluster of course-level clusters, applied consistently across the updated frames above.
  • A short written note for [FE] "+ Rule" & "+ Rule Group" Buttons #671's implementer translating the finalized frames into unambiguous guidance: which control maps to which tier's shared operator, and how the leaf/course/root visual distinctions map to the underlying group hierarchy.
  • Sign-off recorded against [UXD] Build the UI for Competency Criteria Associations #648 (or its successor), consistent with this program's existing design sign-off practice.

Description

This ticket asks a designer to produce updated Figma frames that clarify how the Manage & Apply Competencies page represents a shared AND/OR combining operator across multiple Competency Criteria Group boxes, and that add a visual treatment distinguishing the leaf, course, and root levels of the group hierarchy, none of which the current designs show today.

Current behavior

  1. A base competency tree, built by [FE] Display Competency ID on the Competency Management page #680 (out of scope here): nested competency/sub-competency rows with tag codes, e.g. "Critical Thinking" (CCRS-1) containing "Analysis" (CCRS-1.1), "Evaluation" (CCRS-1.2), "Inference" (CCRS-1.3).
  2. Clicking a competency tag opens a right-hand "Demonstrate Mastery For" panel with a "Manage Groups" link and a "+" add-group button top-right, a Competency Criteria Group box below it reading "By Scoring 75% or better within all of the following ▾" with an empty "Selected Content" placeholder, and a course-browse list below that (built by [FE] Competency Management Course Search/View #670, out of scope here).
  3. Expanding a course in the browse list reveals its sections and gradeable subsections, each with a select affordance ([FE] Competency Management Course Search/View #670's browse content, out of scope here).
  4. Selecting a subsection associates it into the currently open box, shown as a chip with an X (this select/deselect interaction is [FE] Create & View Competency Criteria #672's scope, not this spike's).
  5. With two boxes open at once, one per course ("Introduction to Applied Problem Solving" and "Project Management Fundamentals"), a connector between them currently reads "Or ▾", drawn as its own independently-editable dropdown, and nothing distinguishes that these two boxes belong to different courses versus what it would look like if they were siblings within the same course.

Requested change

Two related but separate problems need the designer's attention:

1. Combining-operator clarity. The connector in step 5 needs updating: it is drawn as if the operator between any given adjacent pair of boxes is set independently. It is not. Whenever two or more boxes share a combining relationship, whether multiple sibling boxes within the same course or multiple different courses' box-clusters combining with each other, that relationship is a single shared value governing the whole cluster, effectively its own "any/all" choice at the cluster level, the same way the box-internal operator already works at the box level. The designer must produce updated frames that:

  • Show 3+ sibling Competency Criteria Group boxes within one course, each with its own delete/trash affordance (clicking "+" always adds another box, default OR), combined by one shared operator control, not N-1 independently-set dropdowns.
  • Show 2+ courses' box-clusters combining with each other via one shared operator control at that tier, same principle.
  • Replace the current "Or ▾" per-pair connector's visual treatment with a control that unambiguously reads as "one choice for this whole cluster."

2. Group-level visibility. Nothing in the current designs lets an author tell, at a glance, whether a set of boxes are siblings within the same course-level grouping, boxes from a different course, or how a given course's grouping relates to the overall competency-wide (root) grouping of all its courses. The designer must produce a visual treatment (e.g. a container, a label, spacing, color, or another Paragon-consistent pattern) that distinguishes these three levels: a leaf box itself, a course-level cluster of one or more sibling leaf boxes, and the root-level cluster of one or more course-level clusters for the competency being viewed.

Out of scope
Open Questions
  • [non-blocking, owner: designer] What specific visual treatment (container styling, labels, spacing, color, or another Paragon-consistent pattern) should distinguish a leaf box from a course-level cluster from the root-level, all-courses cluster? This is genuinely open design work the spike must resolve and document, not something to decide here.
  • [non-blocking, owner: designer] Does the course-level and root-level visual treatment need to hold up when a course-level cluster has only one box (no shared operator to show), or is the level-distinction treatment only relevant once 2+ boxes/clusters exist at that tier? Worth confirming so the frames cover the single-box case explicitly rather than leaving it implied.
Context for the Designer

Background reading: two Claude artifacts walk through the group hierarchy (root, course-level, leaf) this spike's visual-distinction work needs to represent, showing both the author-facing view and the underlying backend tree side by side for each scenario:

Constraints the design must respect: same two-tier operator scope and the same exclusions as Description → Explicitly out of scope above (exactly two combining tiers beyond the already-settled box-internal operator; no locking mechanism, that's #685/#655; no touching the #677 filtering bar; no genuine mixed-logic clusters). See that section for the full list and rationale; nothing here supersedes it.

Relationship to other work: Feeds #671: its group-creation/removal implementation should not proceed on the multi-box clustering, shared-operator, and level-distinction pieces until this spike's decisions are documented. Extends the parent design #648. See Description → Explicitly out of scope for the full list of adjacent tickets this spike does not touch.

Activity

  1. moved this from Needs additional details to Drafting in Competency Criteria and Student Progresson Aug 24, 2026
  2. changed the title [-][Design Spike] Manage & Apply Competencies: clarify multi-box combining-operator UX and distinguish group levels visually[/-] [+][UXD Spike] Manage & Apply Competencies: clarify multi-box combining-operator UX and distinguish group levels visually[/+] on Aug 24, 2026
  3. illiphilli commented on Aug 25, 2026

    @illiphilli

    Here's the final design. The story in Figma. Here's the highlights:

    • An "Association" starts at the "Course Group" level, contains at least 1 "Rule Group" with at least 1 "Rule"
    • Course Groups are 1-to-1 with a course. Multiple groups for a single course not supported.
    • And/Or & Any/All combinators set once at the group level. And/Or combinators between groups are not independent, ie change one changes them all.
    • Both Competency Criteria Associations and Courses & Content section adhere to filtering (top) and pagination (bottom)
    Image
  4. moved this from Drafting to Final Axim Review in Competency Criteria and Student Progresson Aug 26, 2026
  5. 6 remaining items

  6. illiphilli commented on Sep 14, 2026

    @illiphilli

    @jmakowski1123 Course Groups (maybe should be relabeled as Rule Groups or just Groups) are groups of rules inside the parent group (which is at the course level. It's a way that IDs (Instructional Designers) can get really complex/creative in defining how a competency can be mastered. Here's what the user will see when clicking on the Rule Group button:

    Image

    They'll see a new group with a rule selected that they can begin selecting new content within the current course. You (Jenna) and @thelmick-unicon can decide if that button should be relabeled.

    same competencies can be applied in bulk to content in multiple courses

    That's already the way this interface works. If the ID navigates to and tags content in another course, a new group is created (or existing group retrieved) at the course level, and that selected content is tagged with the competency. In this screenshot we're showing the collapsed state of 3 courses that all have rules applied toward demonstrating mastery for Inference.

    Image
  7. jmakowski1123 commented on Sep 15, 2026

    @jmakowski1123

    Per the sync, this is approved. But we need to call it something besides Course Group, which implies multiple courses. Can we start with just "Content" or "Course Content" and see how intuitive that feels to early adopters? Either one of those seem preferable?

  8. mgwozdz-unicon commented on Sep 17, 2026

    @mgwozdz-unicon
    Contributor

    @jmakowski How does "+ Content Group" sound?

  9. moved this from Final Axim Review to Drafting in Competency Criteria and Student Progresson Sep 17, 2026
  10. jmakowski1123 commented on Sep 17, 2026

    @jmakowski1123

    We already use Content Group for another feature on the platform, so that won't work. https://docs.openedx.org/en/latest/educators/how-tos/advanced_features/manage_content_groups.html

  11. thelmick-unicon commented on Sep 17, 2026

    @thelmick-unicon
    Author

    @mgwozdz-unicon @jmakowski1123
    My suggestions:

    "+ Content Grouping" (not sure if this is too close to Content Group)
    "+ Content Set"

    In my opinion, leaving it as "+ Content" doesn't clearly label it to let users know what they are clicking the button for.

  12. mgwozdz-unicon commented on Sep 17, 2026

    @mgwozdz-unicon
    Contributor

    @jmakowski @thelmick-unicon I think I would recommend "+ Rule Group" in that case because these are really groups of rules associated with content, not groups of content.

  13. jmakowski1123 commented on Sep 17, 2026

    @jmakowski1123

    Yes, I think Rule Group is a good option, also because the context of rules is already well established in that modal.

  14. mgwozdz-unicon commented on Sep 17, 2026

    @mgwozdz-unicon
    Contributor

    Awesome!

    @illiphilli Can you please update the designs with this change? @thelmick-unicon Can you find the tickets that this impacts and update the text in them as well?

  15. illiphilli commented on Sep 21, 2026

    @illiphilli

    Here's the re-labelling that button as "Rule Group".

    Image
  16. jmakowski1123 commented on Sep 21, 2026

    @jmakowski1123

    This is approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions