To opt-in to customizable select functionality, the <select> element and its picker both need to have an appearance value of base-select set on them:
select,
::picker(select) {
appearance: base-select;
}
Assuming flexbox is being used to lay out the <option> elements (which is true in current implementations of customizable selects), you could then move the checkmark from the start of the row to the end by setting an order value on it greater than 0, and aligning it to the end of the row using an auto margin-left value (see Alignment and auto margins).
The value of the content property could also be set to a different emoji to change the displayed icon.
option::checkmark {
order: 1;
margin-left: auto;
content: "☑️";
}
See Styling the current selection checkmark for a full example that uses this code, along with a live example rendering.